数值积分的

3视图(30天)
千峰
千峰 2016年11月7日
编辑: 千峰2021年9月1日
我处理一个问题找到准确的数值积分。具体地说,介绍了积分使用最佳逼近方案(勒让德多项式)近似一个矢量值函数的不定积分是不容易被明确写下来。提供的代码如下:
r1 = 0.7;r2 = 1;r3 = r2 - r1;d = 8;
信谊y真实
勒= [];
我= 0:d
l =[多项式系数(legendreP(我,(2 / r1) * y + 1)) 0 (1 d - i)];
勒=[勒;l];
结束
腿= [];
我= 0:d
l =[多项式系数(legendreP(我,(2 * y + r1 + r2) / r3)) 0 (1 d - i)];
腿=[腿;l];
结束
信谊x
t = [];
我= 0:d
t = [t;x ^我);
结束
xp = t;
lp =勒* xp;la =腿* xp;
fi1 = [exp (sin (x));exp (cos (x)));fi2 = (sin (x ^ 2);cos (x ^ 2)];
ny1 =大小(fi1, 1);ny2 =大小(fi2, 1);纽约= ny1 + ny2;
ga1 = fi1 * lp ';ga2 = fi2 *拉';
Ga1 =双(int (Ga1 x, r1, 0) *诊断接头(2。* (0:d) + 1) * (1 / r1));
Ga2 =双(int (Ga2 x, r2, r1) *诊断接头(2。* (0:d) + 1) * (1 / r3));
ep1 = fi1 - Ga1 * lp;ep2 = fi2 - Ga2 *拉;
E1 =双(int (ep1 * ep1 ', x, r1, 0));E2 =双(int (ep2 * ep2的,x, r2, r1));
代码没问题,直到d = 8时返回一个错误状态,双不能输入表达式转换为双数组。如果输入表达式包含符号变量,使用VPA。
我试过vpa函数但仍会发生同样的问题。
一种可能会建议使用积分数值积分而不是int。然而,数值积分似乎产生不准确的结果相比,符号表示。注意,误差矩阵E1和E2变得极其小当近似度d变得大。
总而言之,这里的问题是如何提取,或者准确地计算如果有人建议,E1和E2的数值。
谢谢!
2的评论
千峰
千峰 2016年11月17日
对不起,现在的代码应该是正确的

登录置评。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2016年11月7日
如果你改变你的第一线
信谊n
r1 = 0.7;r2 = 1;r3 = r2 - r1;d = 8;di = n * (d + 1);
然后你可以完全通过E1。之后,不幸的是MATLAB并不知道如何做积分,即使有一个封闭的解。你需要切换到数字:
FF = ep2 * ep2 ';
FF1 = matlabFunction(简化(FF (1));
FF2 = matlabFunciton(简化(FF (2));
E2(1) =积分(FF1, r2, r1);
E2(2) =积分(FF2 r2, r1);
26日的评论
千峰
千峰 2017年1月4日
所以我需要更大的价值的数字vpa函数。

登录置评。

答案(1)

卡兰吉尔
卡兰吉尔 2016年11月30日
编辑:卡兰吉尔 2017年10月17日
使用“vpaintegral”介绍了16 b: //www.tatmou.com/help/symbolic/vpaintegral.html
F2 = vpaintegral (ep2 * ep2’, x, r2, r1)
F2 =
(1.53919 e-23, 2.0475 e-23)
(2.0475 e-23, 2.73446 e-23)
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年9月24日
我的测试不同的包表明20余位精度的需要得到一个不错的结果,所以1 e-20用于Ga1可能不够喜欢你。

登录置评。

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的