我正在尝试在MatLab R2016a中编写一个脚本,该脚本可以求解线性方程组,该线性方程组的大小取决于p
和Q
的值。
我有以下要求解的方程,其中h=[-p:1:p]*dx
。显然,在m
处有一些索引h=0
,但这不成问题。
我正在尝试编写一个函数,在该函数中我可以输入p
和Q
并构建矩阵,然后求解即可得到系数。有没有一种方法可以使用变量p
,Q
和h
来构建矩阵,而不是针对每种情况使用不同的整数值?
答案 0 :(得分:1)
我会使用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