用任意大小矩阵求解MatLab中线性方程组的有限差分计算

时间:2018-06-22 18:17:43

标签: matlab linear

我正在尝试在MatLab R2016a中编写一个脚本,该脚本可以求解线性方程组,该线性方程组的大小取决于pQ的值。

我有以下要求解的方程,其中h=[-p:1:p]*dx。显然,在m处有一些索引h=0,但这不成问题。

First Equation

Other Equations

Matrix

我正在尝试编写一个函数,在该函数中我可以输入pQ并构建矩阵,然后求解即可得到系数。有没有一种方法可以使用变量pQh来构建矩阵,而不是针对每种情况使用不同的整数值?

1 个答案:

答案 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