此示例演示如何求解多项式方程和方程组,并使用符号数学工具箱处理结果™.
高斯求积规则通过求和近似积分 . 这里,这个 和 方法的参数,取决于 但不是在 . 它们遵循权重函数的选择 ,如下所示。与权函数相关的是一组正交多项式。多项式的根就是求值点 .最后,权重 由该方法对小次多项式正确的条件决定。考虑权函数 间歇期 . 这种情况称为高斯-拉盖尔求积。
符号Tn = 4;w (t) = exp (- t);
假设你知道第一个 正交多项式族的成员。在这里考虑的求积规则的情况下,它们是拉盖尔多项式。
F=laguerreL(0:n-1,t)
F=
让L
是
St多项式,其系数尚待确定。
X=sym(“X”, 1, n + 1)
X=
L = poly2sym(X, t)
L =
表示拉盖尔多项式之间的正交关系F
和L
在方程组中系统
.
sys = [int(F.*L.*w(t), t, 0, inf) == 0]
系统=
添加多项式具有范数1的条件。
sys=[sys,int(L^2.*w(t),0,inf)==1]
系统=
解的系数L
.
S=求解(sys,X)
S =结构体字段:X1:[2x1 sym]X2:[2x1 sym]X3:[2x1 sym]X4:[2x1 sym]X5:[2x1 sym]
解决
返回结构数组中的两个解决方案。显万博 尤文图斯示解决方案。
structfun(@display,S)
ans=
ans=
ans=
ans=
ans=
通过施加第一个系数为正的额外条件,使解决方案唯一:
sys = [sys, X(1)>0];S=求解(sys,X)
S =结构体字段:X1:1/24 X2:-2/3 X3:3 X4:-4 X5:1
将溶液替换成溶液L
.
L=潜艇(L,S)
L =
正如预期的那样,这个多项式是|n|th Laguerre多项式:
laguerreL (n, t)
ans=
评价点
多项式的根是多少L
. 解决L
对于评估点。根是用根表示的根
作用
x=求解(L)
x=
这些解决方案的形式可能表明没有实万博 尤文图斯现任何目标,但是可以对它们进行各种操作。使用vpa
:
vpa(x)
ans=
可能会出现一些伪虚部。用符号证明根是实数:
isAlways(在(x,“真实”的))
ans=4 x1逻辑阵列1 1 1 1
对于次数小于或等于4的多项式,你可以使用MaxDegree
用嵌套的根式而不是用万博 尤文图斯根
. 但是,对该表单结果的后续操作将非常缓慢。
xradical =解决(L,“MaxDegree”, 4)
xradical =
权重 是由多项式的次数小于 ,求积规则必须产生精确的结果。如果这对这些多项式的向量空间的基成立就足够了。这种情况导致四个变量中的四个方程组。
y =符号(“是的”[n, 1]);sys =符号(0 (n));对于k=0:n-1系统(k+1)=和(y.*(x.^k))==int(t^k*w(t),t,0,inf);终止系统
系统=
对系统进行数值和符号求解。该解决方案是所需的权重向量 .
[a1,a2,a3,a4]=vpasolve(sys,y)
a1=
a2 =
a3 =
a4 =
[alpha1, alpha2, alpha3, alpha4] =解决(sys, y)
α1 =
alpha2 =
阿尔法3=
alpha4 =
或者,您也可以通过只提供一个输出参数来获得作为结构的解决方案。
S=求解(sys,y)
S =结构体字段:日元:-(根(z z ^ ^ 4 - 16 * 3 + 72 * z ^ 2 - 96 * z + 24, z, 2) *根(z z ^ ^ 4 - 16 * 3…y2:(根(z z ^ ^ 4 - 16 * 3 + 72 * z ^ 2 - 96 * z + 24, z, 1) *根(z z ^ ^ 4 - 16 * 3…y3:(根(z z ^ ^ 4 - 16 * 3 + 72 * z ^ 2 - 96 * z + 24, z, 1) *根(z z ^ ^ 4 - 16 * 3…y4: -(根(z z ^ ^ 4 - 16 * 3 + 72 * z ^ 2 - 96 * z + 24, z, 1) *根(z z ^ ^ 4 - 16 * 3…
structfun(@double,S)
ans=4×10.6032 0.3574 0.0389 0.0005
转换结构s
对于一个符号数组:
Scell=struct2cell(S);alpha=转置([Scell{:}])
阿尔法=
象征性的解决方案看起来很复杂。将其简化,并将其转换为浮点向量:
alpha=简化(alpha)
阿尔法=
vpa(α)
ans=
通过替换根的引用来增加可读性x
在里面阿尔法
缩写:
潜艇(α,x,信谊(“R”, [4, 1]))
ans=
对权重求和,表明它们的和等于1:
简化(sum(α))
ans=
获得求积规则权重的另一种方法是使用公式计算它们 . 这样做是为了 .它导致的结果与其他方法相同:
int (w (t) * prod (t - x(2:4)。/ (x (1) - x (2:4))), t, 0,正)
ans=
求积规则即使对于阶数小于或等于的所有多项式也能产生精确的结果 ,但不是为 .
简化(和(alpha.*(x.^(2*n-1))-int(t^(2*n-1)*w(t),t,0,inf))
ans=
简化(和(alpha.*(x.^(2*n))-int(t^(2*n)*w(t),t,0,inf))
ans=
将求积法则应用于余弦,并与精确结果进行比较:
vpa(总和(α*(cos(x)))
ans=
整数(cos(t)*w(t),t,0,inf)
ans=
对于余弦的幂,误差在奇次幂和偶次幂之间振荡:
误差=零(1,20);对于k = 1:20错误(k) =双(总和(α。* (cos (x)。^ k)) int (cos (t) ^ k * w (t), t, 0,正));终止绘图(真实(错误))