高斯-拉盖尔积分点和权值
这个例子展示了如何求解多项式方程和方程组,并使用符号数学工具箱™处理结果。
高斯求积规则用和来近似积分 .在这里, 而且 方法的参数,取决于 但不是在 .它们来自于权函数的选择 ,如下。与权函数相关的是一组正交多项式。多项式的根是求值点 .最后,重量 确定了该方法适用于小次多项式的条件。考虑权重函数 在间隔中 .这种情况被称为高斯-拉盖尔正交。
信谊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
.
sys = [int(f (l) *w(t), t, 0, inf) == 0]
sys =
加上多项式的模为1的条件。
sys = [sys, int(L^2.*w(t), 0, inf) == 1]
sys =
解出的系数l
.
S = solve(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 = solve(sys, X)
S =带字段的结构:X1: 1/24 x2: -2/3 x3: 3 x4: -4 x5: 1
将溶液代入l
.
L = subs(L, S)
L =
正如预期的那样,这个多项式是|n|次拉盖尔多项式:
laguerreL (n, t)
ans =
评价要点
是多项式的根吗l
.解决l
对于评估点。根用根
函数。
x = solve(L)
x =
解决方案的形式可能表明什么都没有金宝搏官方网站实现,但是可以对它们进行各种操作。计算浮点近似使用vpa
:
vpa (x)
ans =
可能会出现一些虚假的虚构部分。象征性地证明根是实数:
总(在(x,“真实”的))
ans =4x1逻辑阵列1 1 1 1
对于阶数小于或等于4的多项式,可以使用MaxDegree
以嵌套根号的形式而不是金宝搏官方网站根
.然而,对这种形式的结果的后续操作将是缓慢的。
xradical = solve(L,“MaxDegree”4)
xradical =
权重 是由以下条件给出的对于次小于 ,求积法则必须产生精确的结果。如果这对这些多项式的向量空间的一组基成立是充分的。这个条件导致了一个由四个变量的四个方程组成的方程组。
Y = sym(“y”, [n, 1]);Sys = sym(零(n));为k = 0: n - 1系统(k + 1) =总和(y。* ^ k) (x) = = int (t ^ k * w (t), t, 0,正);结束sys
sys =
从数值和符号两方面求解方程组。解就是期望的权重向量 .
[a1, a2, a3, a4] = vpasolve(sys, y)
a1 =
a2 =
a3 =
a4 =
[alpha1, alpha2, alpha3, alpha4] = solve(sys, y)
α1 =
alpha2 =
alpha3 =
alpha4 =
或者,您也可以通过只给出一个输出参数,以结构形式获得解决方案。
S = solve(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
转换结构年代
到一个符号数组:
Scell = struct2cell(S);alpha =转置([Scell{:}])
α=
象征性的解决方案看起来很复杂。化简它,并将其转换为浮点向量:
Alpha =化简(Alpha)
α=
vpa(α)
ans =
通过替换根的出现来增加可读性x
在α
缩写:
Subs (α, x, sym(“R”, [4, 1]))
ans =
对权重求和,使它们的和等于1:
简化(sum(α))
ans =
获得正交规则权重的另一种方法是使用公式计算它们 .这样做是为了 .它的结果与另一种方法相同:
int (w (t) * prod (t - x(2:4)。/ (x (1) - x (2:4))), t, 0,正)
ans =
正交法则甚至对所有次小于或等于的多项式产生精确的结果 ,但不是为了 .
简化(总和(α。* (x) ^ (2 * n - 1))) int (t ^ 2 * n - 1) * w (t), t, 0,正))
ans =
简化(总和(α。* (x) ^ (2 * n))) int (t ^ (2 * n) * w (t), t, 0,正))
ans =
将求积法则应用于余弦,并与精确的结果进行比较:
vpa(总和(α。* (cos (x))))
ans =
Int (cos(t)*w(t), t, 0,无穷)
ans =
对于余弦的次幂,误差在奇次和偶次之间振荡:
误差= 0 (1,20);为k = 1:20错误(k) =双(总和(α。* (cos (x)。^ k)) int (cos (t) ^ k * w (t), t, 0,正));结束情节(真实的(错误)