在 MatLab 中用任意大小的矩阵求解线性方程组进行有限差分计算
Solve System of Linear Equations in MatLab with Matrix of Arbitrary Size for Finite Difference Calculation
我正在尝试在 MatLab R2016a 中编写一个脚本,该脚本可以求解一个线性方程组,该方程组可以根据 p
和 Q
的值具有不同的大小。
我试图求解以下方程式,其中 h=[-p:1:p]*dx
。显然,h=0
处有一些索引 m
,但这应该不是问题。
我正在尝试编写一个函数,我可以在其中输入 p
和 Q
并构建矩阵,然后求解它以获得系数。有没有一种方法可以使用变量 p
、Q
和 h
来构建矩阵,而不是为每个个案使用不同的整数值?
我会用bsxfun(在最近的matlab版本中这个函数可能会实现到解释器,我不确定):
p = 4;
Q = 8;
dx = 1;
h = -p:p*dx
Qvector = [Q,1:Q-1]'
Matrix = bsxfun(@(Qvector, h)h.^(Qvector)./factorial(Qvector), Qvector, h)
输出:
h =
-4 -3 -2 -1 0 1 2 3 4
Qvector =
8
1
2
3
4
5
6
7
Matrix =
1.6254 0.1627 0.0063 0.0000 0 0.0000 0.0063 0.1627 1.6254
-4.0000 -3.0000 -2.0000 -1.0000 0 1.0000 2.0000 3.0000 4.0000
8.0000 4.5000 2.0000 0.5000 0 0.5000 2.0000 4.5000 8.0000
-10.6667 -4.5000 -1.3333 -0.1667 0 0.1667 1.3333 4.5000 10.6667
10.6667 3.3750 0.6667 0.0417 0 0.0417 0.6667 3.3750 10.6667
-8.5333 -2.0250 -0.2667 -0.0083 0 0.0083 0.2667 2.0250 8.5333
5.6889 1.0125 0.0889 0.0014 0 0.0014 0.0889 1.0125 5.6889
-3.2508 -0.4339 -0.0254 -0.0002 0 0.0002 0.0254 0.4339 3.2508
我正在尝试在 MatLab R2016a 中编写一个脚本,该脚本可以求解一个线性方程组,该方程组可以根据 p
和 Q
的值具有不同的大小。
我试图求解以下方程式,其中 h=[-p:1:p]*dx
。显然,h=0
处有一些索引 m
,但这应该不是问题。
我正在尝试编写一个函数,我可以在其中输入 p
和 Q
并构建矩阵,然后求解它以获得系数。有没有一种方法可以使用变量 p
、Q
和 h
来构建矩阵,而不是为每个个案使用不同的整数值?
我会用bsxfun(在最近的matlab版本中这个函数可能会实现到解释器,我不确定):
p = 4;
Q = 8;
dx = 1;
h = -p:p*dx
Qvector = [Q,1:Q-1]'
Matrix = bsxfun(@(Qvector, h)h.^(Qvector)./factorial(Qvector), Qvector, h)
输出:
h =
-4 -3 -2 -1 0 1 2 3 4
Qvector =
8
1
2
3
4
5
6
7
Matrix =
1.6254 0.1627 0.0063 0.0000 0 0.0000 0.0063 0.1627 1.6254
-4.0000 -3.0000 -2.0000 -1.0000 0 1.0000 2.0000 3.0000 4.0000
8.0000 4.5000 2.0000 0.5000 0 0.5000 2.0000 4.5000 8.0000
-10.6667 -4.5000 -1.3333 -0.1667 0 0.1667 1.3333 4.5000 10.6667
10.6667 3.3750 0.6667 0.0417 0 0.0417 0.6667 3.3750 10.6667
-8.5333 -2.0250 -0.2667 -0.0083 0 0.0083 0.2667 2.0250 8.5333
5.6889 1.0125 0.0889 0.0014 0 0.0014 0.0889 1.0125 5.6889
-3.2508 -0.4339 -0.0254 -0.0002 0 0.0002 0.0254 0.4339 3.2508