资源描述:
《计算方法函数编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.4梯形法(复化求积):clearalldisp('计算梯形法近似和程序');symsx;f1=input('请输入一个函数表达式,f(x)=');f=inline(f1);A=input('请输入求和的区间,[a,b]=');a=A(1);b=A(2);n=input('请输入区间等分的数量,n=');h=(b-a)/n;s=0;fori=1:ns1=(f(a)+f(a+h))*h/2;s=s+s1;a=a+h;enddisp(['梯形法近似和,s=',num2str(s,8)]);2.4辛普森法:clearalldisp(
2、'辛普森法');%disp('辛普森法计算积分近似程序');%symsx;%f1=input('请输入一个函数表达式,f(x)=');f=inline('exp(x^2)','x');%A=input('请输入求和的区间,[a,b]=');a=0;%A(1);b=1;%A(2);n=10;%input('请输入区间等分的数量,n=');h=(b-a)/n;s=0;fori=1:ns1=f(a)+4*f(a+h/2)+f(a+h);s=s+s1;a=a+h;ends=s*h/6;disp(['辛普森法计算积分近似值,s=',num
3、2str(s,8)]);4.1二分法:clearalla=input('请输入左端点:a=');b=input('请输入右端点:b=');f=inline('x^3-x-1','x');n=0;while(abs(b-a)>5.0e-3)&(n<1e5)zhdian=(a+b)/2;fa=f(a);fab=f(zhdian);iffab==0break;elseiffa*fab<0b=zhdian;elsea=zhdian;endn=n+1;endzhdiann4.2迭代法:clearallx0=input('请输入初始值:x0
4、=');f=inline('(x+1)^(1/3)');x1=f(x0);n=1;while(abs(x1-x0)>1.0e-6)&(n<1e5)x0=x1;x1=f(x0);n=n+1;endformatlong;x1n4.3开方法(牛顿法的特例):clearalla=input('请输入要开方的值:a=');x0=input('请输入初始值:x0=');eps=input('请输入精确值:eps=');x1=(x0+a/x0)/2;n=1;whileabs(x1-x0)>epsdisp(['第',num2str(n),'次迭
5、代的开方值为:',num2str(x1,7)]);x0=x1;x1=(x0+a/x0)/2;n=n+1;end4.4Newton法(切线法):clearallx0=input('请输入初始值:x0=');f=inline('x-exp(-x)');df=inline('x+1');a=f(x0);b=df(x0);h=inline('x-a/b','a','b','x');x1=h(a,b,x0);n=1;while(abs(x1-x0)>1.0e-6)&(n<=1e5)disp(['第',num2str(n),'次牛顿迭代值为
6、:',num2str(x1,7)]);x0=x1;a=f(x0);b=df(x0);x1=h(a,b,x0);n=n+1;end4.5.1牛顿下山法牛顿法迭代过程中保证函数值单调下降4.5.2割线法(弦截法):clearallsymsx;h=input('请输入函数表达式:f(x)=');x0=input('请输入初始近似值:x0=');x1=input('请输入初始近似值:x1=');f=inline(h);a=f(x0);b=f(x1);c=x1-x0;h=inline('x1-b*(x1-x0)/(b-a)','a','b
7、','x1','x0');x2=h(a,b,x1,x0);n=1;while(abs(x2-x1))>=(1e-6)&(n<=1e3)disp(['第',num2str(n),'次割线法迭代值为:',num2str(x2,9)]);x0=x1;x1=x2;a=b;b=f(x);x2=h(a,b,x1,x0);n=n+1;enddisp(['第',num2str(n),'次割线法迭代值为:',num2str(x2,9)]);5.2.1Jacob迭代法:A=[10,-1,-2;-1,10,-2;-1,-1,5];b=[7.28.34
8、.2];x0=[000];[m,k]=size(A);r=max(abs(x0-b));n=1;while(r>1e-6)&(n<=1e6)fori=1:msum=0;forj=1:kifi~=jsum=sum+A(i,j)*x0(j);endendx1(i)=