数值计算方法上机实习题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值计算方法上机实习题

1 1

(2)丨20=0, 120 = 10000,用 I n 」

I n 」 一,计算丨0 ; 5 5n

答:第一个算法可得出

易知第一个算法每一步计算都把误差放大了

5倍,n 次计算后更是放大了 5n

倍,可靠性低。

第二个算法可得出

(1 )

由递推公式I n = -51心-,从

n

I o =O.1823出发,计算* ;

(3)

分析结果的可靠性及产生此现象的原因

重点分析原因。

可以看出第二个算法每一步计算就把误差缩小5倍,n次后缩小了5n倍,可靠性高。

2.求方程e^+IOx —2=0的近似根,要求 x k *—x k <^10-,并比较计算量。

(1)

在[0 , 1]上用二分法;

(1) [0, 1]上的二分法

二分法子程序:

function [root,n]=EFF3(f,x1,x2) %第二题⑴二分法

f1= subs(f,symvar(f),x1);% 函数在 x=x1 的值 f2=subs(f,symvar(f),x2);%x=x2 n=0;%步数 er=5*10A-4;% 误差 if(f1==0)

root=x1; return;

elseif(f2==0)

root=x2; return;

elseif(f1*f2>0)

disp('两端点函数值乘积大于 0!');

return;

else

while(abs(x1-x2)>er)% 循环 x3=(x1+x2)/2;

f3=subs(f,symvar(f),x3);

n=n+1; if(f3==0)

root=x3; break; elseif(f1*f3>0)

x1=x3; else

x2=x3; end end

root=(x1+x2)/2;%while 循环少一步需加上 end

2 _e (2) 取初值x 0 =0,并用迭代x k d :

10

(2)初值x o =O 迭代

计算根与步数程序:

迭代法子程序:

syms x;

function [root,n]=DDF(g,x0,err,max) (接下页) f=(2-exp(x))/10;(接下页)

计算根与步数程序:

fplot(@(x) exp(x)+10*x-2,[0,1]); grid on; syms x; f=exp(x)+10*x-2; [root,n]=EFF3(f,0,1);

fprintf('root=%6.8f ,n=%d \n',root,n);

计算结果显示:

root=0.09057617 ,n=11

(3)加速迭代的结果

(4)取初值X。=0,并用牛顿迭代法;

(5)分析绝对误差。

答:可以看到,在同一精度下,二分法运算了11次,题设迭代算式下运算了4次,加速迭代下运算了2次,牛顿迭代下运算了2次。因不动点迭代法和二分法都是线性收敛的,但二分法压缩系数比题设迭代方法大,收敛速度较慢。加速迭代速度是超线性收敛,牛顿法是二阶,收敛速度快。

3.钢水包使用次数多以后,钢包的容积增大,数据如下:

ax + b

试从中找出使用次数和容积之间的关系,计算均方差。(用y 拟合)

c + x

拟合曲线程序:

x=2:16;

y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59

10.60 10.8 10.6 10.9 10.76];

[f,fval]=fminsearch(@delta1,[0,0,0],optimset,x,y)

J

%fminsearch为求解多元函数的最小值函数

%f为多元函数初值x0附近的极小值点

%fval为极小值

k=2:100;

y1= (f(1).*k+f(2))./(f(3)+k); figure1=figure('Color',[1 1 1]);

gxt=plot(x,y,'xr',k,y1,'k-');

legend(原数据’,'拟合曲线','Location','northwest'); %y 为数据点连接曲线,y1为拟合曲线

title('函数y=(ax+b)/(x+c)的拟合

','FontSize',14,'FontWeight','Bold'); xlabel('次数

','FontSize',14,'FontWeight','Bold'); ylabel('容积

','FontSize',14,'FontWeight','Bold');

set(gxt,'LineWidth',1.5);

grid on;

%计算均方差

for i=1:15 构造函数子程序:

function delta=delta1(f,x,y)

a=f(1);

b=f(2);

c=f(3);

delta=0;

for k=1:15

delta=delta+((x(k)+c)*y(k)-(a*x(k)+b))A2;

end

计算结果显示:

拟合出的方程为:(x+-0.7110)y=11.2657x+-15.5024

均方差为033165089

总结:

指标选择,因题设方程I & E需[片—签普「为非线性的,要转化为线性方程故需提指标为:

相关文档
最新文档