您好,欢迎访问三七文档
1、确定参数p、q、r,使得迭代212512,,,...kkkkqaraxpxkxx收敛到3,并使收敛的阶尽可能高。(16分)解:迭代方程225(),1,2,...qaraxpxkxx 2'3625(),qaraxpxx2''47630(),qaraxxx利用局部收敛性与收敛阶定理4知要使收敛的阶尽可能高,需满足'*''*()0()0xx 又知**()xx则可得到以下式子:22233393250273363009273qarapqarapqara ......1 ......2 ......3由以上三式可解得:2539pra53 q= 3a收敛的阶数为3。题外话:解这样比较复杂的方程组,不太适合手算,最好自己利用MATLAB编写一个小程序:附带自编小程序:symspqra;s1='sqrt(3)*p+(q*a)/3+(r*a^2)/(9*sqrt(3))=sqrt(3)';s2='p-(2*q*a)/(3*sqrt(3))-(5*r*a^2)/27=0';s3='(6*q*a)/9+(30*r*a^2)/(27*sqrt(3))=0';[p,q,r]=solve(s1,s2,s3,p,q,r)2、用MATLAB编程求著名的VanDerPol方程210()xxxx的数值解并绘制其时间响应曲线和状态轨迹图(给出源程序)(14分)解:先建立一个函数文件fname.m:functionxdot=fname(t,x)xdot=zeros(2,1);xdot(1)=(1-x(2)^2)*x(1)-x(2);xdot(2)=x(1);调用函数文件fname.m求VanDerPol方程的数值解并绘制时间响应曲线和状态轨迹图:ts=[030];%设置仿真时间30秒x0=[1;0];%设置仿真初值[t,x]=ode45('fname',ts,x0);subplot(1,2,1),plot(t,x)subplot(1,2,2),plot(x(:,1),x(:,2))3、试确定常数A,B,C,使得数值求积公式)1()()0()(110CfxBfAfdxxf具有尽可能高的代数精度。此时的代数精度是多少?它是否是Gauss型公式?(14分)解:根据题意可令23()1,,,fxxxx分别代入求积公式使它精确成立:当()1fx时,得:1......1ABC 当()fxx时,得:11......22BxC 当2()fxx时,得:211......33BxC 当3()fxx时,得:311......44BxC 由以上四式可解得:1111662ACx2 B= 3,于是有:101211()(0)()(1)6326fxdxfff当4()fxx时,14015xdx而上式右端为51245,故公式对3()fxx不精确成立,其代数精确度为3由高斯求积公式定义4知,求积公式具有21n次代数精度为高斯求积公式,则知求积公式1101211()(0)()(1)(0)()(1)6326fxdxAfBfxCffff是高斯求积公式。题外话:附带自编小程序:symsABCx1;s1='A+B+C=1';s2='B*x1+C=1/2';s3='B*x1^2+C=1/3';s4='B*x1^3+C=1/4';[A,B,C,x1]=solve(s1,s2,s3,s4,A,B,C,x1)4、已知美国1910-2010人口数据如表1(单位:百万),且假定人口数随时间关系增长服从阻滞增长模型,即t时刻的人口数x(t)为其中r、mx为待定参数,使用matlab编程拟合这些参数,并预测2020年的人口数。(14分)表1.美国1910-2010年的人口变化情况年19101920193019401950196019701980199020002010人口数92106123132150179204226251281307解:先建立一个函数文件fun3.m:functionf=fun3(a,t)f=a(1)./(1+(a(1)/92-1)*exp(-(t-1910)*a(2)));调用函数文件fun3.m拟合题中给定的参数并预测2020年的人口数yi:x=1910:10:2010;y=[92106123132150179204226251281307];plot(x,y,'*',x,y);a0=[200,0.1];a=lsqcurvefit('fun3',a0,x,y)xi=1910:5:2040;yi=fun3(a,xi);holdonplot(xi,yi,'r');x1=2020;yi=fun3(a,x1)holdofxtxxxemmrt()()110
本文标题:数值分析参考答案
链接地址:https://www.777doc.com/doc-2387467 .html