首页 数值分析中常用的matlab程序

数值分析中常用的matlab程序

举报
开通vip

数值分析中常用的matlab程序1.%最小二乘法拟合数据点方法1:% 左除右除:xA=B==>x=B/A|Ax=B==>x=B\A% A表示拟合函数的组合,如:多项式插值,A=[1,x,x.^2,...,x.^n],表示拟合函数为% 多项式:s(x)=a0a1*x...an*x^n;又如:A=[log(x),cos(x),exp(x)]%则表示拟合函数为s(x)=a0*ln(x)a1*cos(x)a2*exp(x)% 法方程为:A'*A*z=A'*y==>A*z=y==>z=A\y  z=(a0,...,an)'%Date:2012-1-1cle...

数值分析中常用的matlab程序
1.%最小二乘法拟合数据点方法1:% 左除右除:xA=B==>x=B/A|Ax=B==>x=B\A% A表示拟合函数的组合,如:多项式插值,A=[1,x,x.^2,...,x.^n],表示拟合函数为% 多项式:s(x)=a0a1*x...an*x^n;又如:A=[log(x),cos(x),exp(x)]%则表示拟合函数为s(x)=a0*ln(x)a1*cos(x)a2*exp(x)% 法方程为:A'*A*z=A'*y==>A*z=y==>z=A\y  z=(a0,...,an)'%Date:2012-1-1clear;clc;x=[00.250.50.751]';y=[11.2841.64872.11702.7183]';%索要拟合的数据点x1=ones(size(x),1);A=[x1xx.^2];%拟合函数Z=A\y%A中每列函数的参数%最小二乘法拟合数据方法2:采用polyfit函数%Date:2012-1-1clear;clc;x=[00.250.50.751]';y=[11.2841.64872.11702.7183]';%索要拟合的数据点p=polyfit(x,y,2)%polyfit(x,y,n),(x,y)为数据点坐标,n为拟合多项式阶数,p为% 所求拟合多项式的幂次从高到低排列的系数。2.% 复合梯形公式计算积分值% 输入:fun--积分函数;a,b--积分区间;n--区间等分数% 输出:I--数值积分结果% 调用格式(ex):re=ftrapz(@fun1,0,1,10)% 2012-1-1functionI=ftrapz(fun,a,b,n)h=(b-a)/n;%区间等分x=linspace(a,b,n1);%将a到b的区间等分成(n1)-1个区间,数据点有(n!)个y=feval(fun,x);I=h*(0.5*y(1)sum(y(2:n))0.5*y(n1));%积分原函数% Date:2012-1-1functiony=fun1(x)y=exp(-x);3.% 复合simpson公式求积分% 输入:fun--积分函数;a,b--积分区间;n--区间等分数% 输出:I--数值积分结果% 调用格式(ex):re=fsimpson(@fun1,0,1,10)% 2012-1-1functionI=fsimpson(fun,a,b,n)h=(b-a)/n;x=linspace(a,b,2*n1);y=feval(fun,x);I=(h/6)*(y(1)2*sum(y(3:2:2*n-1))4*sum(y(2:2:2*n))y(2*n1));4.% 两点GS-Legendre公式求积分% 输入:fun--积分函数;a,b--积分区间;% 输出:I--数值积分结果% 调用格式(ex):re=GSLege(@fun2,0,1)% 2012-1-1functionI=GSLege(fun,a,b)%将区间[a.b]通过变量替换x=(ab)/2-(b-a)/2*t变到[-1,1]%其中t取GS-Lege的高斯点m1=feval(fun,(ab)/2(b-a)/2*(-1/sqrt(3)));m2=feval(fun,(ab)/2(b-a)/2*(1/sqrt(3)));I=(b-a)/2*(m1m2);% GS-Legendre公式的积分函数% Date:2012-1-1functiony=fun2(x)y=sin(x)/x;5.% 追赶法求解线性方程组Ax=b,其中A是三对角方阵%functionx=tridiagsolver(A,b)clear;clc;A=[2-100;-13-20;0-24-3;00-35];%三对角矩阵,线性方程组系数矩阵b=[6,1,-2,1]';%[n,n]=size(A);fori=1:nif(i<2)l(i)=A(i,i);y(i)=b(i)/l(i);u(i)=A(i,i1)/l(i);elseifi=500fprintf('rootnotfound!');end7.% 牛顿法求解非线性方程的根% 输入:fun--非线性函数;dfun--非线性函数导数;x0--初始值;tol--精度;% 输出:x--非线性方程数值根% 调用格式(ex):x=newton(@fun3,@dfun3,6,1e-3)% 2012-1-1functionx=newton(fun,dfun,x0,tol)iter=1;ifabs(feval(fun,x0)) 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 的矩阵;v0--初始非零向量;tol--精度;% 输出:x--特征向量;lam--按模最大特征值% 调用格式(ex):[lam,x]=power(A,v0,1e-2)% 2012-1-1function[lam,x]=matrixpower(A,v0,tol)v1=A*v0;v2=A*v1;sum=0;p=0;fori=1:size(v1)ifv1(i)~=0sum=sumv2(i)/v1(i);p=p1;endendlam0=sum/p;iter=2;vk1=v2;whileiter<500vk2=A*vk1;sum=0;p=0;fori=1:size(vk1)ifvk1(i)~=0sum=sumvk2(i)/vk1(i);p=p1;endendlam=sum/p;ifabs(lam-lam0)=500fprintf('notsuccessful!');lam=NaN;elselam=lam1;x=u0;end10.% 反幂法求矩阵的按模最小特征值及其特征向量% 输入:A--要求的矩阵;v0--初始非零向量;tol--精度;% 输出:x--特征向量;lam--按模最大特征值% 调用格式(ex):[lam,x]=invMatrixPower(A,v0,1e-2)% Date:2012-1-2function[lam,x]=invMatrixPower(A,v0,tol)[ty,ti]=max(abs(v0));lam0=v0(ti);u0=v0/lam0;iter=1;whileiter<500v1=A\u0;[tv,ti]=max(abs(v1));lam1=v1(ti);u0=v1/lam1;ifabs(1/lam0-1/lam1)=500fprintf('notsuccessful!');lam=NaN;elselam=1/lam1;x=u0;end11.% 欧拉方法求解一阶常微分方程初值问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 % 输入:fun--一阶常微分函数;a,b--求解区间;y0--函数在a点值y(a);n--所分区间数;% 输出:y--常微分方程在区间[a,b]上各点的数值解;% 调用格式(ex):y=odeEuler(@fun4,0,1,1,10)% Date:2012-1-2functiony=odeEuler(fun,a,b,y0,n)h=(b-a)/n;y(1)=y0;x=a:h:b;fori=1:ny(i1)=y(i)h*feval(fun,x(i),y(i));end% 常微分方程fun4=0% Date:2012-1-2functionre=fun4(x,y)re=y-2*x/y;12.% 改进欧拉公式(预估--校正)方法求解一阶常微分方程初值问题% 输入:fun--一阶常微分函数;a,b--求解区间;y0--函数在a点值y(a);n--所分区间数;% 输出:y--常微分方程在区间[a,b]上各点的数值解;% 调用格式(ex):y=pOdeEuler(@fun4,0,1,1,10)% Date:2012-1-2functiony=pOdeEuler(fun,a,b,y0,n)h=(b-a)/n;y(1)=y0;x=a:h:b;fori=1:nyp=y(i)h*feval(fun,x(i),y(i));yc=y(i)h*feval(fun,x(i1),yp);y(i1)=0.5*(ypyc);end13.% 梯形方法求解一阶常微分方程初值问题% 输入:fun--一阶常微分函数;a,b--求解区间;y0--函数在a点值y(a);n--所分区间数;% 输出:y--常微分方程在区间[a,b]上各点的数值解;% 调用格式(ex):y=trapezium(@fun4,0,1,1,10)% Date:2012-1-2functiony=trapezium(fun,a,b,y0,n)h=(b-a)/n;y(1)=y0;x=a:h:b;tol=1e-6;fori=1:n%用不动点迭代的方法求解非线性方程:%y(i1)=y(i)h*feval(fun,x(i),y(i))/2h*feval(fun,x(i),y(i1))/2;iter=1;yy0=1(i-1)*h;%迭代初始值whileiter<500yy1=y(i)h*feval(fun,x(i),y(i))/2h*feval(fun,x(i)h,yy0)/2;ifabs(yy1-yy0)=500printf('notsuccessful!');y=NaN;return;elsey(i1)=yy1;endend14.%  标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 四阶四段龙格-库塔方法求解一阶常微分方程初值问题% 输入:fun--一阶常微分函数;a,b--求解区间;y0--函数在a点值y(a);n--所分区间数;% 输出:y--常微分方程在区间[a,b]上各点的数值解;% 调用格式(ex):y=longekuta(@fun4,0,1,1,10)% Date:2012-1-2functiony=longekuta(fun,a,b,y0,n)h=(b-a)/n;y(1)=y0;fork=2:n1x=a(k-2)*h;k1=h*feval(fun,x,y(k-1));k2=h*feval(fun,xh/2,y(k-1)k1/2);k3=h*feval(fun,xh/2,y(k-1)k2/2);k4=h*feval(fun,xh,y(k-1)k3);y(k)=y(k-1)(k12*k22*k3k4)/6;end15.插值% 拉格朗日插值% 输入:x,y--插值数据点(x,y均为行向量);xh--要插值的点;% 输出:yh--插值结果;% 调用格式(ex):yh=lagrange(x,y,xh)% Date:2012-1-2functionyh=lagrange(x,y,xh)n=length(x);m=length(xh);yh=zeros(1,m);c1=ones(n-1,1);c2=ones(1,m);fori=1:nxp=x([1:i-1i1:n]);yh=yhy(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));%prod对输入的一个向量返回其所有分量的乘积end%拉格朗日调用clear;clc;x=[1112];y=[2.39792.4849];xh=11.75;yh=lagrange(x,y,xh)15_2% 牛顿插值% 输入:x,y--插值数据点(x,y均为行向量);xh--要插值的点;% 输出:yh--插值结果;% 调用格式(ex):yh=newtonPol(x,y,xh)% Date:2012-1-2functionyh=newtonPol(x,y,xh)n=length(x);p(:,1)=x;p(:,2)=y;forj=3:n1p(1:n2-j,j)=diff(p(1:n3-j,j-1))./(x(j-1:n)-x(1:n2-j))';%求差商表endq=p(1,2:n1)';%求牛顿法的系数--取第一行yh=0;m=1;yh=q(1);fori=2:nm=q(i);forj=2:im=m*(xh-x(j-1));%求牛顿法中各多项式值(xh-x0)…(xh-xn-1)endyh=yhm;%求和end%牛顿插值调用
本文档为【数值分析中常用的matlab程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_654168
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:29
分类:
上传时间:2022-08-05
浏览量:2