资源描述
实验十
一、阅读理解下列程序,并在计算机上运行
1. xjfdd.m % x0,x为初值,w为精度,n为最大迭代次数
function [a,k]=xjfdd(x0,x,w,n)
a(1:2)=[x0,x];
for k=1:n
if f(x)-f(x0)==0
disp('分母为零')
break
end
y=x-(x-x0)*f(x)/(f(x)-f(x0));a(k+2)=y;
if abs(y-x)>w
x=y;
else
break
end
end
if k==n
disp('迭代失败')
end
function y=f(x) %子函数
y=x*exp(x)-1;
2. kxjfdd.m % x0,x为初值,w为精度,n为最大迭代次数
function [a,k]=kxjfdd(x0,x1,w,n)
a(1:2)=[x0,x1];
for k=1:n
if f(x1)-f(x0)==0
disp('分母为零')
break
end y=x1-(x1-x0)*f(x1)/(f(x1)-f(x0));
a(k+2)=y;
if abs(y-x1)>w
x0=x1;x1=y;
else
break
end
end
if k==n
disp('迭代失败')
end
function y=f(x) %子函数
y=x*exp(x)-1;
3. %利用ex的展开式计算函数ex的值
(1) qexp.m
function [E,k,F]=qexp(x,w,n)
E=0;F=1;
for k=1:n
E=E+F;
F=x*F/k;
if abs(E-exp(x))<w
break
end
end
(2) qex.m
function [E,k,F]=qex(x)
E=0;F=1;k=1;
while abs(F)>0
E=E+F;
F=x*F/k;
k=k+1;
end
4. % 利用sin(x)的展开式计算其函数值
(1) qsin.m
function [s,k,T]=qsin(x)
s=0;T=x;k=1;
while abs(T)>0
s=s+T;
T=-x*x*T/(2*k*(2*k+1));
k=k+1;
end
(2) qsn.m
function [s,k,T]=qsn(x,w,n)
s=0;T=x;
for k=1:n
s=s+T;
T=-x*x*T/(2*k*(2*k+1));
if abs(s-sin(x))<w
break
end
end
二、编程并在计算机上调试修改运行
1. P142例1、P145例2、P154例3
2. P155 2、P156 7、9
三、选做题:修改单点弦截法程序dxjf.m,并在计算机上运行
function x2=dxjf(x0,x1,w,N)
k=1;
while k~=N
if g(x1)==0
x2='分母为零'
end
x2=x1-f(x1)/g(x1);
if abs(x2-x1)<w
break
end
k=k+1;
x1=x2;
end
if k==N
x2='迭代失败'
end
function y=f(x) %子函数
y=4*cos(x)-exp(x) ;
function y=g(x) %子函数
y=(f(x)-f(x0))/(x-x0);
4
展开阅读全文