首页 > 编程知识 正文

MATLAB数值积分(数值逼近数值积分MATLAB实现)

时间:2023-05-05 23:50:18 阅读:121344 作者:4641

问题记述积分函数如下

可以看出积分区间为[ 0,1 ],该积分值为(4*Arctan1)。

数值积分复积分首先将[ 0,1 ]区间八等分,分别采用8阶复梯形公式、4阶复Simpson公式、2阶复Cotes公式计算

x=[0. 1250.250.3750.50.6250.750.8751 ]; ------------------------------n '; T=0; forI=2:8y=2*4/(1x(I ) ^2); T=T y; ENDT=t4/(1x(1)2)4/(1x ) )2); T=T/16; fprintf(8 (利用8阶复杂化梯形公式(n ) ); VPA(T,11 )-----------------fprintf ) ) )-------------将T=0; forI=2:2:8t=t4*4/(1x(I ) ^2); endfori=:233607 t=T2 *4/(1x (I ) ^2); ENDT=t4/(1x(1)2)4/(1x ) )2); T=T/24; fprintf ('利用四阶复杂化Simpson公式(n ); VPA(T,11 )-----------------fprintf ) ) )-------------将T=0; fori=2:2:8 t=t32 *4/(1x (I ) ^2); ENDT=t12*(4/) 1x(3)2(4/) 1x(3)2) ); t=t14*4/(1x )5) ^2); t=t7*(4/) 1x(1) (2)4/(1x )9) )2); T=T/180; 利用fprintf ()二阶复杂化Cotes公式(n ) ); VPA(t,11 )的运行结果如下

--------------------------------------------------- -在使用利用八阶复杂化梯形公式ans=3.1388884945------ -二阶复杂化Cotes式ans=ans=3. 分别计算n=1、3、5时的积分值。

%函数化为2/(1) x1 ) ^2/4),积分区间为(-1, 1 ) I1=2/)1(-0.5773502691896250 )2/4)1) 0.57350269189625065251 I2=0.3478548451374530 *2/(1)。 (1(0.339810435848560 (1(0.33998104358485601 )2/4) . 0.3478548451374530*2/)1) 0.8611363115940520 )2/4; i3=0.1713244923791700 *2/(1(-0.9324695142031520 )2/4)…0.3607615730481380 *2/(1(0.661209386462640 ) )1) 0.2386191860831960(^2/4),0.3607615730481388813888138818810 fr intf------------- n '; frintf(n=1时,利用Gauss-Legendre求积式(n ); VPA (i1,11 ) fprintf(------------(n ) ); frintf(n=3时,利用Gauss-Legendre求积式(n ); VPA (I2,11 ) fprintf(------------(n ) ); frintf(n=5时,利用Gauss-Legendre求积式(n ); VPA(I3、11 )的运行结果如下

----------------n=1时,采用gauss----legendre求积式ans=3.1475409836------------n=1

总结一下上述两种积分方法计算结果的误差

其中最有效的是n=5时的Gauss-Legendre求积式。

但是,这里的代码写的是傻话……但是看起来很直观……

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。