计算方法(本)大作业_第1页
计算方法(本)大作业_第2页
计算方法(本)大作业_第3页
计算方法(本)大作业_第4页
计算方法(本)大作业_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB通用程序(10分)答:functionf=language(x,y,x0)symst;if(length(x)==length(y))n=length(x);elsedisp(‘x和y的维数不相等!’);return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)l=l*(t-x(j))/(x(i)-x(j));end;f=f+1;simplify(f);if(i==n)if(nargin==3)f=subs(f,‘t’,x0);elsef=collect(f);f=vpa(f,6);endendend2、编写复化梯形公式的MATLAB通用程序(5分)编程如下:functions=mtrap(f,a,b,n);symsx;h=(b-a)/n;x=linspace(a,b,n+1);y=feval(f,x);s=0.5*h*(y(1)+2*sum(y(2:n))+y(n+1));3、编写龙贝格积分法的MATLAB通用程序(10分)function[T]=mromb(f,a,b,eps)ifnargin<4,eps=1e-6;endh=b-a;R(1,1)=(h/2)*(feval(f,a)+feval(f,b));n=1;J=0;err=1;while(err>eps)J=J+1;h=h/2;S=0;fori=1:nx=a+h*(2*i-1);S=S+feval(f,x);endR(J+1,1)=R(J,1)/2+h*S;fork=1:JR(J+1,k+1)=(4^k*R(J+1,k)-R(J,k))/(4^k-1);enderr=abs(R(J+1,J+1)-R(J+1,J));n=2*n;endR;T=R(J+1,J+1);4、编写列主元消元法的MATLAB通用程序(15分)function[x]=mgauss2(A,b);n=length(b);fork=1:(n-1)[ap,p]=max(abs(A(k:n,k)));p=p+k-1;ifp>kA([k,p],:)=A([p,k],:);b([k,p],:)=b([p,k],:);endm=A(k+1:n,k)/A(k,k);A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n);b(k+1:n)=b(k+1:n)-m*b(k);A(k+1:n,k)=zeros(n-k,1);endx=zeros(n,1);x(n)=b(n)/A(n,n);fork=n-1:-1:1x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);end5、编写直接三角分解法的MATLAB通用程序(15分)function[x,L,R]=jc(A,b)n=length(b);R=zeros(n);L=eye(n);R(1,1:n)=A(1,1:n);L(2:n,1)=A(2:n,1)/R(1,1);fork=2:nR(k,k:n)=A(k,k:n)-L(k,1:k-1)*R(1:k-1,k:n);L(k+1:n,k)=(A(k+1:n,k)-L(k+1:n,1:k-1)*R(1:k-1,k))/R(k,k);endy=zeros(n,1);y(1)=b(1);fork=2:ny(k)=b(k)-L(k,1:k-1)*y(1:k-1);endx=zeros(n,1);x(n)=y(n)/R(n,n);fork=n-1:-1:1x(k)=(y(k)-R(k,k+1:n)*x(k+1:n))/R(k,k);end6、编写雅可比迭代法的MATLAB通用程序(10分)function[x,i]=jacobi(A,b,x,ep,N);D=diag(diag(A));fori=1:Nx=D\((D-A)*x+b);err=norm(b-A*x)/norm(b);iferr<ep,break;endend7、编写高斯-塞德尔迭代法的MATLAB通用程序(10分)function[x,i]=seidel(A,b,x,ep,N);%A为系数矩阵,b为右端项,x为初始向量,ep为精度,N为最大迭代次数,返回值为近似解向量和迭代次数D=diag(diag(A));L=D-tril(A);U=D-triu(A);fori=1:Nx=(D-L)\(U*x+b);err=norm(b-A*x)/norm(b);iferr<ep,break;endend8、编写切线法的MATLAB通用程序(5分)function[x,k]=mqie(f,df,x0,ep,N);%f和df分别为表示f(x)及其导数,x0为迭代初值,ep为精度,N为最大迭代次数,x,k分别返回近似根和迭代次数k=0;whilek<Nx=x0-feval(f,x0)/feval(df,x0);ifabs(x-x0)<epbreak;endx0=x;k=k+1;end9、编写欧拉法求解初值问题的MATLAB通用程序(10分)function[x,y]=meuler(f,xspan,y0,h);%f为函数f(x,y),xspan为求解区间[x0,xn],y0为初值y(x0),h为步长,[x,y]返回节点和数值解矩阵x=xspan(1):h:xspan(2);y(1)=y0;forn=1:(length(x)-1)k1=feval(f,x(n),y(n));y(n+1)=y(n)+h*k1;endMATLAB(10分)function[x,y]=mygj(f,xspan,y0,h);%f为函数f(x,y),xspan为求区间[x0,xn],y0为初值y(x0),h为步长,[x,y]返回节点和数值解矩阵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论