matlab程序运行修改版

matlab程序运行修改版

ID:13064633

大小:65.50 KB

页数:9页

时间:2018-07-20

matlab程序运行修改版_第1页
matlab程序运行修改版_第2页
matlab程序运行修改版_第3页
matlab程序运行修改版_第4页
matlab程序运行修改版_第5页
资源描述:

《matlab程序运行修改版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、拉格朗日插值公式:functiony=lage(X,Y,x)%拉格朗日插值函数n=length(X);y=zeros(size(x));fork=1:nw=ones(size(x));forj=[1:k-1k+1:n]w=(x-X(j))./(X(k)-X(j)).*w;endy=y+w*Y(k);end调用方法:在matlab中新建一个script窗口,把上述程序保存成(lage.m)文件,然后在命令窗口调用y=lage(A,B,x),其中A,B均为列向量,分别代表插值点的横坐标和纵坐标,x为待求点横坐标例如:现有x0=1,x1=2,x2=4,y0=3,y1=2,y2=7;要求x=

2、1.5处的估计值。过程:则A=[123]’,B=[327]’,x=1.5在命令窗口输入如下命令:A=[123]’;B=[327]’;x=1.5;y=lage(A,B,x)(注意:这个直接占到命令窗口会出现符号问题,请自行修改)y即为所求结果2、牛顿插值公式:functionf=niudun(X,Y,x)n=length(X);A=zeros(n,n);%A用于存储均差表(空余位置设为0)A(:,1)=Y;t=A(1,1);forj=2:nfori=j:nl=1;A(i,j)=(A(i,j-1)-A(i-1,j-1))./(X(i)-X(i-j+1));%算出均差表ifi==j%只取每列非

3、0的第一个数fork=1:j-1l=l.*(x-X(k));%通项计算endt=t+l.*A(i,j);%各项累加求结果endend9endf=t;在matlab中新建一个script窗口,把上述程序保存成(niudun.m)调用方法:y=niudun(A,B,x)A,B,x的定义与拉格朗日函数相同3、雅克比迭代法:function[y,n]=yacobi(a,d)formatlong;x=[0;0;0];%³õʼÏòÁ¿stop=1.0e-4;%µü´úµÄ¾«¶ÈL=-tril(a,-1);U=-triu(a,1);A=(diag(diag(a)));D=inv(A);X=D*(L

4、+U)*x+D*d;%Jµü´ú¹«Ê½n=1;whilenorm(X-x,inf)>=stop%ʱµü´úÖÐÖ¹·ñÔò¼ÌÐøx=X;X=D*(U+L)*x+D*d;n=n+1;endy=X;或:functionyacobia=[30-2;081;-116];d=[3;2;2];x=[0;0;0];%初始向量stop=1.0e-4;%迭代的精度L=-tril(a,-1);U=-triu(a,1);A=(diag(diag(a)));D=inv(A);X=D*(L+U)*x+D*d;%J迭代公式n=1;whilenorm(X-x,inf)>=stop%时迭代中止否则继续x=X;X=

5、D*(U+L)*x+D*d;n=n+1;endXn在matlab中新建一个script窗口,在这个窗口中(即.m文件中)直接运行(run)上述程序,若题目要求Ax=b,则将a矩阵内容换为A,d内容换为b。9例如:数值分析书上209页的第一题过程:将上述程序二、三行改为a=[521;-142;2-310];d=[-12;20;3]其余不变,即可得到迭代次数与结果。4、高斯赛德尔迭代法:functiongaosisaia=[30-2;081;-116];d=[3;2;2];x=[0;0;0];%³õʼÏòÁ¿stop=1.0e-4;%µü´úµÄ¾«¶ÈL=-tril(a,-1);U=-t

6、riu(a,1);A=(diag(diag(a)));D=inv(A-L);X=D*U*x+D*d;%Jµü´ú¹«Ê½n=1;whilenorm(X-x,inf)>=stop%ʱµü´úÖÐÖ¹·ñÔò¼ÌÐøx=X;X=D*U*x+D*d;n=n+1;endXn调用方法:在matlab中新建一个script窗口,在这个窗口中(即.m文件中)直接运行(run)上述程序,若题目要求Ax=b,则将a矩阵内容换为A,d内容换为b。(同3)5、高斯消去法:functiongaosia=[0123;9112334;62.523.415.517.2;192.0112425.159.3];b=[1

7、;1;1;1];n=length(b);m=zeros(n,n);fork=1:n-1m=k+1;while(a(k,k)==0&m<=n)c=a(k,:);a(k,:)=a(k+1,:);a(k+1,:)=c;9d=b(k,:);b(k,:)=b(k+1,:);b(k+1,:)=d;endfori=k+1:nm(i,k)=a(i,k)/a(k,k);b(i)=b(i)-m(i,k)*b(k);forj=k:na(i,j)=a(i,

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

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

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