matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

1.3 误差估计的基本方法

例1.3.4  设计三种算法求方程的一个正根的近似值,并研究每种算法的误差传播情况.

解   为解已知方程,我们可以设计如下三种算法,然后将计算结果与此方程的精确解比较,观察误差的传播.

算法1  将已知方程化为同解方程.取初值,按迭代公式  

                         

依次计算,结果列入表1–3中.

算法2  将已知方程化为同解方程.取初值,按迭代公式  

          

依次计算,结果列入表1–3中.

算法3  将已知方程化为同解方程.取初值,按迭代公式为                 

依次计算,结果列入表1–3中.

我们为这三种算法的计算编写两套MATLAB程序如下:

(1)MATLAB主程序

function [k,juecha,xiangcha,xk]= liti112(x0,x1,limax)

% 输入的量--x0是初值, limax是迭代次数和精确值x;

% 输出的量--每次迭代次数k和迭代值xk,

%         --每次迭代的绝对误差juecha和相对误差xiangcha,

x(1)=x0;

for i=1:limax

   x(i+1)=fl(x(i));%程序中调用的fl.m

   juecha = abs(x(i)-x1);

   xiangcha = juecha /( abs(x(i))+eps);

   xk=x(i);k=i-1;[(i-1),juecha,xiangcha,xk]

end

(2)MATLAB调用函数程序及其计算结果

①算法2的MATLAB调用函数程序

function y1=fl(x)

y1=15/(2*x+1);

② 将MATLAB主程序和调用函数程序分别命名liti112.m和fl.m,分别保存为M文件,然后在MATLAB工作窗口输入命令

>> [k,juecha,xiangcha,xk]= liti112(2,2.5,100)

③运行后输出计算结果列入表1–3和表 1-4中.

④将算法2的MATLAB调用函数程序的函数分别用y1=15-2*x^2和y1=x-(2*x^2+x-15)/(4*x+1)代替,得到算法1和算法3的调用函数程序,将其保存,运行后将三种算法的前8个迭代值列在一起(见表 1-3),进行比较.将三种算法的对应的绝对误差和相对误差的值列在一起(见表 1-4),进行比较.

 

表 1-3  例1.3.4中三种算法的计算结果

算 法

迭代次数

算法1的迭代结果

算法2的迭代结果

算法3的迭代结果

0

2

2.000 000 00

2.000 000 00

1

7

3.000 000 00

2.555 555 56

2

-83

2.142 857 14

2.500 550 06

3

-13 763

2.837 837 84

2.500 000 06

4

-378 840 323

2.246 963 56

2.500 000 00

5

-2.870 4

2.246 963 56

2.500 000 00

6

-1.647 8

2.321 774 84

2.500 000 00

7

-5.430 7

2.657 901 65

2.500 000 00

99

-Inf

2.500 000 01

2.500 000 00

 

表 1-4  例1.3.4中三种算法计算结果的误差

算法

代   次

算法1的误差

算法2的误差

算法3的误差

绝对误差

相对误差

绝对误差

相对误差

绝对误差

相对误差

0

0.500 000 00

0.250 000 00

0.500 000 00

0.250 000 00

0.500 000 00

0.250 000 00

1

4.500 000 00

0.642 857 14

0.500 000 00

0.166 666 67

0.055 555 60

0.021 739 13

2

85.500 000 00

1.030 120 48

0.357 142 86

0.1666 666 70

0.000 550 10

0.000 219 97

3

13 765.500 00

0.000 100 02

0.337 837 84

0.119 047 62

0.000 000 06

0.000 000 02

4

378 840 326

1.000 000 01

0.253 036 44

0.112 612 62

0.000 000 00

0.000 000 00

5

2.870 399 81

1

0.230 287 04

0.084 345 48

0

0

6

1.647 839 01

1

0.178 225 16

0.076 762 47

0

0

7

5.430 746 80

1

0.157 901 65

0.059 408 39

0

0

99

Inf

NaN

0.000 000 01

0.000 000 00

0

0

 


欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3010300.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1