【发布时间】:2016-04-17 02:52:06
【问题描述】:
我需要为函数x*e^(x)*sin(pi*x) 计算从x=-1 到x=1 的积分。为此,我使用了高斯正交法。这种方法可以概括为(weights)*(function evaluated at given roots)从k=1到k=n的总和,其中n=30。
在我下面的代码中,根在列向量LegendreGaussQuadratureConstants(n).x 中。我正在进行转置,因为我想对权重执行逐个元素的乘法运算,这些权重存储在 row 向量LegendreGaussQuadratureConstants(n).w
我的代码:
fx = @(x) x .* e.^(-x) .* sin(pi .* x);
for k = 1:50
Leg(k) = (fx(LegendreGaussQuadratureConstants(k).x))' .* LegendreGaussQuadratureConstants(k).w;
endfor
问题是它给了我标题中的错误,暗示使用 k 的标量值存在一些问题,并且它应该与被相乘的值的大小相匹配,但这没有任何意义...
【问题讨论】: