1 / 17
文档名称:

数值分析实验— MATLAB实现.docx

格式:docx   大小:39KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验— MATLAB实现.docx

上传人:cai.li.bin 2019/8/19 文件大小:39 KB

下载得到文件列表

数值分析实验— MATLAB实现.docx

文档介绍

文档介绍:数值分析实验——MATLAB实现姓名sumnat学号20**********班级13级应用数学2班指导老师2016年1月一、插值:拉格朗日插值 11、代码: 12、示例: 1二、函数逼近:最佳平方逼近 21、代码: 22、示例: 2三、数值积分:非反常积分的Romberg算法 31、代码: 32、示例: 4四、数值微分:5点法 51、代码: 52、示例: 6五、常微分方程:四阶龙格库塔及Adams加速法 61、代码:四阶龙格库塔 62、示例: 73、代码:Adams加速法 84、示例: 8六、方程求根:Aitken迭代 91、代码: 92、示例: 10七、线性方程组直接法:三角分解 101、代码: 102、示例: 11八、线性方程组迭代法:Jacobi法及G-S法 121、代码:Jacobi法 122、示例: 123、代码:G-S法 134、示例: 13九、矩阵的特征值及特征向量:幂法 141、代码: 142、示例: 14插值:拉格朗日插值代码:functionz=LGIP(x,y)%拉格朗日插值n=size(x);n=n(2);%计算点的个数symsa;u=0;%拉格朗日多项式f=1;%插值基函数fori=1:nforj=1:nifj==if=f;elsef=f*(a-x(j))/(x(i)-x(j));endendu=u+y(i)*f;f=1;endz=expand(u);%展开示例:>>x=1:6;y1=x.^5+3*x.^2-6;y2=sin(x)+sqrt(x);>>f1=LGIP(x,y1)f1=-6+3*a^2+a^5%可知多项式吻合得很好>>f2=vpa(LGIP(x,y2),3)f2=.962e-1*a^4+*a+.300*a^2+.504-.436*a^3-.616e-2*a^5函数逼近:最佳平方逼近代码:functionz=BestF(u,a,b,n)%最佳平方逼近,用x^i逼近,n为逼近的次数n=n+1;symsxreal;old=findsym(u);u=subs(u,old,x);%将u中变量替换为xf=sym('');H=sym('');d=sym('');fori=1:n%生成函数系f(1,i)=x^(i-1);endfori=1:n%生成内积Hforj=1:nH(i,j)=int(f(1,i)*f(1,j),a,b);endendfori=1:n%生成内积dd(i,1)=int(f(1,i)*u,a,b);enda=H\d;%解法方程Ha=dz=a'*f';示例:>>symsx>>f1=sqrt(x);>>f2=x^5+x^2;>>f3=exp(x);>>a=0;b=1;>>BestF(f1,a,b,5)ans=12/143+420/143*x-1120/143*x^2+2016/143*x^3-1800/143*x^4+56/13*x^5>>BestF(f2,a,b,5)ans=x^5+x^2>>BestF(f3,a,b,5)ans=-566826+208524*exp(1)+(16733010-6155730*exp(1))*x+(-115830120+42611520*exp(1))*x^2+(306348840-112699440*exp(1))*x^3+(-342469260+125987400*exp(1))*x^4+(136302012-50142708*exp(1))*x^5>>vpa(ans,3)ans=.1e4-.1e6*x-.1e7*x^3+.1e7*x^4数值积分:非反常积分的Romberg算法代码:functionz=IntRom(f,a,b)%Romberg算法e=1e-10;I{1}=linspace(a,b,2);%1等分I{2}=linspace(a,b,3);%2等分L=setdiff(I{2},I{1});%新得插值点h=b-a;T(1,1)=h/2*sum(subs(f,I{1}));T(2,1)=1/2*T(1,1)+h/2*sum(subs(f,L));T(2,2)=4/3*T(2,1)-1/3*T(1,1);k=2;whileabs(T(k,k)-T(k-1,k-1))>e%精度要求k=k+1;I{k}=linspace(a,b,2^(k-1)+1);L=setdiff(I{k},I{k-1});%集合差运算,新得插值点h=h/2;T(k,1)=1/2*T(k-1,1)+h/2*sum(subs(f,L));%梯形fori=2:kT(k,i)=(4^(i-1)/(4^(i-1)-1))*T(k,i-1)-(1/(4^(i-1)-1))*T(k-1,i-1);%加速endEndTz=T(k,k);示例:>>symsx>>f=x^4;>>a=