matlab计算一个递推公式,用递推公式计算定积分(matlab版)

时间:2025-04-02 09:06:59

《用递推公式计算定积分(matlab版)》由会员分享,可在线阅读,更多相关《用递推公式计算定积分(matlab版)(7页珍藏版)》请在人人文库网上搜索。

1、用递推公式计算定积分实验目的:1.充分理解不稳定的计算方法将导致误差的积累,这将导致计算过程中误差的迅速增加,从而导致结果中的较大误差。2.在选择近似计算的数值公式时,我们应该学会选择那些不会导致计算过程中误差迅速增加的公式。3.了解不稳定计算公式导致误差积累的来源和具体过程;4.掌握简单的matlab语言进行数值计算。实验主题:对于n=0,1,2,20,计算定积分:01xnx 5dx实验原理:y(n)=01 NX 5=1n015 xn-1 x5dx计算中有两种迭代方法,如下所示:方法1:y(n)=1n5 * y(n-1),n=1,2,3,20;Y(0)=011x 5dx=ln6-ln5 0.。

2、182322方法2:递推公式是y(n-1)=1 5n-1 5*y(n),n=20,19,1。此外,从1 126=1 6 * 01 x 20dx0 1 x 20x 5 dx1 5 * 01 x 20dx=1 105理想值:y(20)1 2*(1 105 1 126)0.008730。实验内容:对于算法一,程序代码如下:函数y,n=付娜()符号k n t;t=0.182322n=0;y=零(1,20);y(1)=t;对于k=2:20y(k)=1/k-5 * y(k-1);n=n1;目标y(1:6)y(7:11)对于算法2,程序代码如下:%计算定积分;% n-表示迭代次数;%y用于存储结果;函数y,。

3、n=f();syms k y _ 20y=零(21,1);n=1;y _ 20=(1/105 1/126)/2;y(21)=y _ 20;对于k=21:-1:2y(k-1)=1/(5 *(k-1)-y(k)/5;n=n1;目标实验结果:在计算过程中,前11个数字太小,后9个数字相对较大,导致前几个数字只显示0.0000,所以先输出前6个数字,然后输出7-11个数字,这样就可以全部显示出来。算法一的结果:y,n=付娜%首先显示y (1)-y (6)ans=0.1823-0.41162.3914-11.706958.7346-293.5063%然后显示y (7)-y (11)ans=1.0e 00。

4、5 *0.0147-0.07340.3669-1.83469.1728y=1.0e 012 *第1栏至第11栏0000-0.00000000-0.00000000-0.00000000-0.00000000-0.00000000第12栏至第20栏-0.00000000-0.00010.0006-0.00290.0143-0.07170.3583-1.7916n=19算法2的结果:y,b=fy=0.18230.08840.05800.04310.03430.02850.02430.02120.01880.01690.01540.01410.01300.01200.01120.01050.00990.00930.00890.00830.0087b=21实验分析:从两个问题的计算结果可以看出,第一个算法是不稳定的,而第二个算法是稳定的。第一种算法:因为y(1)本身有一定的误差,它被设置为_1,那是因为y(n)=1/n-5y(n-1)=1/n-5(1/(n-1)-5y(n-1)=1/n-5/(n-1)-52/(n-2)-(5n)*y(0)因此,在多次迭代之后,误差将增加许多倍。由此可见,在实际应用中应尽量避免数值不稳定的公式。