




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一题考虑计算给定向量的范数:输入向量x=x1,x2,xnT,输出x1,x2,x。请编制一个通用程序,并用你编制的程序计算如下向量的范数:x=1,12,13,1nT, y=1,2,nT.对n = 10,100,1000甚至更大的n计算其范数,你会发现什么结果?你能否修改你的程序使得计算结果相对精确呢?代码:function Problem1()clcN=input(input N=);X=zeros(1,N);Y=1:N;for i=1:N X(i)=1/i;endx1=0;x2=0;y1=0;y2=0;for i=1:N x1=x1+abs(X(i); x2=x2+X(i)*X(i); y1=y1+abs(Y(i); y2=y2+Y(i)*Y(i);endx1;x2=sqrt(x2);x3=max(abs(X);y1;y2=sqrt(y2);y3=max(abs(Y);fprintf(x的1范数是%.2fn,x1);fprintf(x的2范数是%.2fn,x2);fprintf(x的无穷范数是%.2fn,x3);fprintf(y的1范数是%.2fn,y1);fprintf(y的2范数是%.2fn,y2);fprintf(y的无穷范数是%.2fn,y3);结果:input N=10x的1范数是2.93x的2范数是1.24x的无穷范数是1.00y的1范数是55.00y的2范数是19.62y的无穷范数是10.00input N=100x的1范数是5.19x的2范数是1.28x的无穷范数是1.00y的1范数是5050.00y的2范数是581.68y的无穷范数是100.00input N=1000x的1范数是7.49x的2范数是1.28x的无穷范数是1.00y的1范数是500500.00y的2范数是18271.11y的无穷范数是1000.00第二题考虑y=fx=ln(1+x)x,其中定义f(0)=1,此时f(x)是连续函数。用此公式计算当x-10-15,10-15时的函数值,画出图像。另一方面,考虑下面算法:d=1+xif d=1 theny=1else y=lnd/(d-1)end if用此算法计算x-10-15,10-15时的函数值,画出图像。比较一下发生了什么?代码:function problem2()clcN=1000;n=2*10(-15)/N;%公式计算f=zeros(1,N+1);t=1;for i=-10(-15):n:10(-15) if(i=0) f(t)=log(1+i)/i; else f(t)=1; end t=t+1;end%算法计算a=zeros(1,N+1);t=1;for i=-10(-15):n:10(-15) d=1+i; if(d=1) a(t)=log(d)/(d-1); else a(t)=1; end t=t+1;end%画图,左边是公式算的,右边是算法算的subplot(1,2,1);plot(-10(-15):n:10(-15),f);hold onsubplot(1,2,2);plot(-10(-15):n:10(-15),a);hold on结果:第三题首先编制一个利用秦九韶算法计算一个多项式在给定点的函数值的通用程序,你的程序包括输入多项式的系数以及给定点,输出函数值。利用你编制的程序计算px=x-29=x9-18x8+144x7-672x6+2016x5-4032x4+5376x3-4608x2-512在x=2邻域附近的值。画出px在x1.95,20.5上的图像。代码:function problem3()%秦九韶算法clcn=9;c=1,-18,144,-672,2016,-4032,5376,-4608,2304,-512;N=100;m=(2.05-1.95)/N;y=zeros(1,N+1);ydex=0;for x=1.95:m:2.05 ydex=ydex+1; dex=1; temp=c(dex); while dexa a=abs(A(k,i); m=k; end end A(i,m,:)=A(m,i,:); P(i,m,:,i)=P(m,i,:,i); for j=i+1:n L(j,i,i)=-A(j,i)/A(i,i); for l=i:n A(j,l)=A(j,l)+L(j,i,i)*A(i,l); end endendU=A;Ufor x=1:n-1 Q=L(:,:,x); for y=x+1:n-1 Q=P(:,:,y)*Q*P(:,:,y); end S=S*inv(Q);end%L矩阵S for z=1:(n-1) R=P(:,:,z)*R;end%P矩阵Rb1=R*b;b2=inv(S)*b1;x2=inv(U)*b2;M=inv(U)*inv(S)*Rerror=norm(x-x2)结果:由于篇幅有限仅列出n=5时的精度及逆矩阵LU分解M = 0.5000 -0.2500 -0.1250 -0.0625 -0.0625 0 0.5000 -0.2500 -0.1250 -0.1250 0 0 0.5000 -0.2500 -0.2500 0 0 0 0.5000 -0.5000 0.5000 0.2500 0.1250 0.0625 0.0625error = 8.8818e-16PLU分解M = 0.5000 -0.2500 -0.1250 -0.0625 -0.0625 0 0.5000 -0.2500 -0.1250 -0.1250 0 0 0.5000 -0.2500 -0.2500 0 0 0 0.5000 -0.5000 0.5000 0.2500 0.1250 0.0625 0.0625error =7.8516第五题编制计算对称正定阵的Cholesky分解的通用程序,并用你编制的程序计算Ax = b,其中A=aijRnn,aij=1i+j-1。b可以由你自己取定,对n从10到20验证程序的可靠性。代码:function problem5()%cholesky分解clc%生成矩阵AN=10; A=zeros(N);for ia=1:N for ja=1:N A(ia,ja)=1/(ia+ja-1); endendL=chol(A);L 结果:由于篇幅有限仅列出n=10时的L矩阵L = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 0 0.2887 0.2887 0.2598 0.2309 0.2062 0.1856 0.1684 0.1540 0.1417 0 0 0.0745 0.1118 0.1278 0.1331 0.1331 0.1304 0.1265 0.1220 0 0 0 0.0189 0.0378 0.0525 0.0630 0.0702 0.0748 0.0777 0 0 0 0 0.0048 0.0119 0.0195 0.0265 0.0326 0.0378 0 0 0 0 0 0.0012 0.0036 0.0068 0.0103 0.0139 0 0 0 0 0 0 0.0003 0.0011 0.0022 0.0038 0 0 0 0 0 0 0 0.0001 0.0003 0.0007 0 0 0 0 0 0 0 0 0.0000 0.0001 0 0 0 0 0 0 0 0 0 0.0000第六题(1) 编制程序House(x),其作用是对输入的向量x,输出单位向量u使得I-2uuTx=x2e1。(2) 编制Householder变换阵H=I-2uuTRnn乘以ARnm的程序HA,注意,你的程序并不显式的计算出H。(3) 考虑矩阵A=123-132-22e 43-102-3027 75/2,用你编制的程序计算H使得HA的第一列为e1的形式,并将HA的结果显示。代码:function problem6()clcx=1;-1;-2;-10(1/2);0;if x(1)0 sg=1;else sg=-1;endNx=length(x);e1=zeros(Nx,1);e1(1)=1;sum=0;for i=1:Nx sum=sum+x(i)*x(i);endx2=sqrt(sum);clear sum;w=x-sg*x2*e1;u=w/sqrt(w*w);u%生成矩阵AA=1,2,3,4;-1,3,2(1/2),3(1/2);-2,-2,exp(1),pi;-10(1/2),2,-3,7;0,2,7,5/2;H=eye(Nx)-2*u*u;H*A结果:u = -0.6124 -0.2041 -0.4082 -0.6455 0ans = 4.0000 -0.8311 1.4090 -6.5378 0.0000 2.0563 0.8839 -1.7805 0.0000 -3.8874 1.6576 -3.8836 0.0000 -0.9843 -4.6770 -4.1078 0 2.0000 7.0000 2.5000第七题用Jacobi和Gauss-Seidel迭代求解下面的方程组,输出迭代每一步的误差xk-x:5x1-x2-3x3=-2-x1+2x2+4x3=1-3x1+4x2+15x3=10代码:function problem7()clcinter=10;%迭代次数rx=69*7/61-8, 69*3/(61*2)-7/2, 69/61; %根据题意生成A,bA=5 -1 -3; -1 2 4; -3 4 15;b=-2 1 10;N=length(b);x=ones(N,1);%Jacobi迭代法L=zeros(N,N);D=L;U=L;for ia=1:N D(ia,ia)=A(ia,ia); if ia1 for il=1:(ia-1) L(ia,il)=-A(ia,il); end endendfor intt=1:inter x=inv(D)*(L+U)*x+inv(D)*b; wuca1=0; %求误差 for ix=1:N wuca1= wuca1+(x(ix)-rx(ix)2; end wuca1end%G-S迭代法for intt=1:inter x=inv(D-L)*U*x+inv(D-L)*b; wuca2=0; %求误差 for ix=1:N wuca2= wuca2+(x(ix)-rx(ix)2; end wuca2end结果:wuca1 = 24.6036wuca1 = 12.3259wuca1 = 1.9276wuca1 = 5.4520wuca1 = 15.9787wuca1 = 10.0748wuca1 = 3.6731wuca1 = 6.2770wuca1 = 11.9670wuca1 = 8.9591wuca2 = 5.5096wuca2 = 9.1425wuca2 = 6.9372wuca2 = 8.0757wuca2 = 7.4675wuca2 = 7.7807wuca2 = 7.6170wuca2 = 7.7018wuca2 = 7.6577wuca2 =7.6806第八题取不同的初值用Newton迭代以及弦截法求方程x3+2x2+10x-100=0的实根,列表或者画图说明收敛速度。代码:function problem8()%inNew记录Newton迭代法的收敛速度%inS记录弦截法的收敛次数clcchuzhi=4;%初值f=;%Newton迭代x=chuzhi;for inNew=1:inter xx=x-(x3+2*x2+10*x-100)/(3*x2+4*x+10); f(inNew)=x; if abs(xx-x)10(-5) break; end x=xx;endsubplot(1,2,1);plot(1:inNew,f);hold onclear f;inNewxx%弦截法xk=chuzhi;xkr=chuzhi-1;for inS=1:inter xka=xk-(xk3+2*xk2+10*xk-100)*(xk-xkr)/(xk3+2*xk2+10*xk-100)-(xkr3+2*xkr2+10*xkr-100); f(inS)=xk; if abs(xka-xk)acc) ymax=exp(max(r)*cos(max(r)+2; temp=(max(r)+min(r)/2; ytemp=exp(temp)*cos(temp)+2; if ytemp*ymax=0 break; else if ytemp*ymax0 max(r)=temp; else min(r)=temp; end end end accr(r)=temp;endaccr结果:accr = 1.8807 4.6940 7.8548 10.9955第十题考虑函数f(x)= sin(x),x 0, 1。用等距节点作f(x)的Newton插值,画出插值多项式以及f(x)的图像,观察收敛性。代码:function f=Newton(x,y)syms t;n=length(x);c(1:n)=0;f=y(1);y1=0;p=1;for i=1:n-1 for j=i+1:n y1(j)=(y(j)-y(i)/(x(j)-x(i); end c(i)=y1(i+1); p=p*(t-x(i); f=f+c(i)*p; y=y1;endf=simplify(f);end所以考虑函数f(x)= sin(x),x 0,1,取二次、三次、四次插值函数。二次: x=linspace(0,1,3) y=sin(pi*x); f2=Newton(x,y)f2 =-4*t*(t - 1)三次: x=linspace(0,1,4); y=sin(pi*x); f3=Newton(x,y)f3 =-(9*3(1/2)*t*(t - 1)/4四次:x=linspace(0,1,5); y=sin(pi*x); f4=Newton(x,y)f4 =(t*(32968342914557536*t3 - 65936685829115088*t2 + 5181631624232978*t + 18014398509481984*2(1/2) + 2310504600221487)/9007199254740992结果:第十一题对函数fx=11+x2,x -5, 5,取不同的节点数n,用等距节点lagrange插值,观察Runge现象。代码:function p=Lagrange(n,t) x=linspace(-5,5,n);y=1./(1+x.2);m=length(t);for i=1:m s=0; for k=1:n l(k)=1; for j=1:n if j=k l(k)=l(k)*(t(i)-x(j)/(x(k)-x(j); end end s=l(k)*y(k)+s; end p(i)=s;end end t=-5:0.1:5; p=1./(1+x.2); plot(x,p) hold on p5=Lagrange(5,x); plot(x,p5,r) p10=Lagrange(10,x); plot(x,p10,g) p15=Lagrange(15,x); plot(x,p15,m) p20=Lagrange(20,x); plot(x,p20,y)结果:第十二题令fx=e3x cos(x),考虑积分02f(x)dx。区间分为50,100,200, 500,1000等,分别用复合梯形以及复合Simpson积分公式计算积分值,将数值积分的结果与精确值比较,列表说明误差的收敛性。代码:function problen12()clcN=input(请输入N=);%改变区间份数h=2*pi/N;%复化梯形公式x=0:h:2*pi;sum=0;for in=2:N sum=sum+exp(3*x(in)*cos(pi*x(in);endTn=2*pi*(1+2*sum+exp(6*pi)*cos(pi*2*pi)/(2*N)%Simapsonsum1=0;sum2=sum;for si=1:N xx=(h/2)+(si-1)*h; sum1=sum1+exp(3*xx)*cos(pi*xx);endSn=2*pi*(1+4*sum1+2*sum2+exp(6*pi)*cos(pi*2*pi)/(6*N)结果:请输入N=50Tn = 3.5125e+07Sn = 3.5231e+07请输入N=100Tn = 3.5205e+07Sn = 3.5232e+07请输入N=200Tn = 3.5226e+07Sn = 3.5232e+07请输入N=500Tn = 3.5231e+07Sn = 3.5232e+07请输入N=1000Tn = 3.5232e+07Sn = 3.5232e+07第十三题分别用2点,3点以及5点的Gauss型积分公式计算如下定积分:(1)-11x21-x2dx, (2) 02sinxxdx代码:function y=Chebyshev(f,n) %使用 Chebyshev 多项式进行 Gauss 型数值积分 %输入: f为表达式, n 为 Gauss 点数 %输出: y 为积分值x=zeros(1,n);A=zeros(1,n);for i=1:n x(i)=cos(2*n-1)*pi/(2*n); A(i)=pi/n;endy=sum(A(1:n).*subs(f,x(1:n);y=double(y);endfunction y=Lengder(f,a,b,x,w) %使用 Lengder 多项式进行 Gauss 积分 %输入: f 为积分表达式, a 和 b 为积分上下限, x 为高斯零点向量, w 为求积系数向量 %输出: y 为积分值T=(a+b)/2+(b-a)/2*x;y=(b-a)/2*sum(w.*subs(f,T);y=double(y);end函数调用:clcformat longsyms xf1=x2;f2=sin(x)/x;a=0;b=pi/2;x1=-0.5574,0.5574; %两节点高斯根向量w1=1,1;x2=-0.7746,0,0.7746; %三节点高斯根向量w2=0.5556,0.8889,0.5556;x3=-0.9062,-0.5385,0,0.5385,0.9062; %五节点高斯根向量w3=0.2369,0.4786,0.5689,0.4786,0.2369;y1=Chebyshev(f1,2),Chebyshev(f1,3),Chebyshev(f1,5)y2=Lengder(f2,a,b,x1,w1),Lengder(f2,a,b,x2,w2),Lengder(f2,a,b,x3,w3)real1=double(int(f1/sqrt(1 -x2),-1,1)real2=double(int(f1/sqrt(1 -x2),-1,1)结果:y1 = 1.570796326794897 1.570796326794897 1.570796326794897y2 = 1.373366018722214 1.370830304826270 1.370692253570828real1= 1.570796326794897real2= 1.370762168154488第十四题考虑微分方程初值问题:dxdt=1(t+1)2ty-y2x0=2分别用Euler法,改进的Euler法,Runge-Kutta法求解该方程。分别取步长为0.1,0.01,0.001,计算到x(1),画图说明结果。根据题意,首先计算精确积分的结果。得x=ylnt+1+y+y2t+1。将x0=2代入得到y=1或y=-2代码:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电黔西南自治州2025秋招行业解决方案岗位专业追问清单及参考回答
- 航模F16课件教学课件
- 2025江苏如东县新天顺投资集团有限公司招聘2人笔试题库历年考点版附带答案详解
- 2025年中国平煤神马控股集团招聘专科层次毕业生110人笔试备考题库及答案解析
- 2025年及未来5年中国基础化学原料行业市场深度分析及投资潜力预测报告
- 2025年及未来5年中国金花清感颗粒行业市场深度评估及投资策略咨询报告
- 2025年及未来5年中国奶酪行业发展监测及投资战略规划研究报告
- 2025年及未来5年中国危化运输车行业市场深度分析及发展趋势预测报告
- 2025山西阳泉市市级机关遴选公务员37人笔试备考题库及答案解析
- 2025年及未来5年中国艾灸养生仪行业发展监测及市场发展潜力预测报告
- 中医课题申报书的范文怎么写
- 2025年公基常识题及答案
- 诺如病毒胃肠炎诊疗方案(2025年版)解读学习课件
- 2025年地方AMC行业研究报告及未来行业发展趋势预测
- 农业综合行政执法大比武试题库(试题及答案)
- 2025年零碳园区发展白皮书-荣续ESG智库
- 国企新员工入职纪检培训
- 2024全国职业院校技能大赛ZZ060母婴照护赛项规程+赛题
- 特殊天气驾驶安全规范
- 新闻文体的翻译课件
- 西方翻译理论流派划分探索
评论
0/150
提交评论