计算方法书中的MATLAB实例.ppt

计算方法书中的MATLAB实例.ppt

ID:49977563

大小:471.55 KB

页数:33页

时间:2020-03-05

计算方法书中的MATLAB实例.ppt_第1页
计算方法书中的MATLAB实例.ppt_第2页
计算方法书中的MATLAB实例.ppt_第3页
计算方法书中的MATLAB实例.ppt_第4页
计算方法书中的MATLAB实例.ppt_第5页
资源描述:

《计算方法书中的MATLAB实例.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用Matlab实现求积分在Matlab程序编辑器中输入:y0=log(6.0/5.0);fprintf('y[%d]=%f',0,y0)n=1;while(1)yl=1.0/n-5*y0;fprintf('y[%d]=%f',n,yl)if(n>=20)break;endy0=yl;n=n+1;end程序运行结果:functionx=nabisect(fname,a,b,e)%fname为内嵌函数表达式;a,b为区间端点;e为输入定义的精度ifnargin<4,e=1e-4;end;%n

2、argin为输入变量的个数,若未输入精度变量,则给定默认精度fa=feval(fname,a);fb=feval(fname,b);%计算端点的函数值iffa*fb>0,error('函数在两端点值必须异号');endx=(a+b)/2while(b-a)>(2*e)fx=feval(fname,x);iffa*fx<0,b=x;fb=fx;elsea=x;fa=fx;endx=(a+b)/2end程序如下:Matlab应用举例(二分法)程序运行结果:用Matlab实现Newton迭代法求解fu

3、nctionx=nanewton(fname,dfname,x0,e,N)ifnargin<5,N=500;end%N为迭代次数ifnargin<4,e=1e-4;end%设置默认精度x=x0;x0=x+2*e;k=0;whileabs(x0-x)>e&k

4、在Matlab程序编辑器中输入:functionx=nagauss(a,b,flag)%解线形方程组ax=b,a为系数矩阵,b为右端列向量,flag若为0,则显示中间过程,否则不显示,默认为0,x为解向量ifnargin<3,flag=0;endn=length(b);a=[a,b];%消元fork=1:(n-1)a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));a((k+1):n

5、,k)=zeros(n-k,1);ifflag==0,a,endend%回代x=zeros(n,1);x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);end程序运行结果:用Matlab实现选列主元Gauss消去法解线性方程组在Matlab程序编辑器中输入:functionx=nagauss2(a,b,flag)%a为系数矩阵;b为右端列向量;flag若为0,则显示中间过程,否则不

6、显示ifnargin<3,flag=0;endn=length(b);a=[a,b];%选主元fork=1:(n-1)[ap,p]=max(abs(a(k:n,k)));p=p+k-1;ifp>k,t=a(k,:);a(k,:)=a(p,:);a(p,:)=t;end%消元a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));a((k+1):n,k)=zeros(n-k,1);iffl

7、ag==0,a,endend%回代x=zeros(n,1);x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);end程序运行结果:用Matlab实现LU分解在Matlab程序编辑器中输入:function[L,U]=nalu(a)%a为可逆方阵;L返回单位下三角矩阵;U返回上三角矩阵n=length(a);U=zeros(n,n);L=eye(n,n);U(1,:)=a(1,:);

8、L(2:n,1)=a(2:n,1)/U(1,1);fork=2:nU(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);L(k+1:n,k)=(a(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);end程序运行结果:用Matlab实现Lagrange插值:functionyy=nalagr(x,y,xx)%x为节点;y为节点值;xx为插值点;yy为返回值m=length(x);n=length(y);ifm~=n,error('

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。