章绍辉习题1参考解答_第1页
章绍辉习题1参考解答_第2页
章绍辉习题1参考解答_第3页
章绍辉习题1参考解答_第4页
章绍辉习题1参考解答_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业第一章习题参考答案1. 请编写绘制以下图形的MATLAB命令,并展示绘得的图形.(1) 、分别是椭圆的内切圆和外切圆.解答方法一(显函数和伸缩变换)的显函数形式为,并利用伸缩变换:的横、纵坐标都是的两倍,的横、纵坐标分别是的两倍和一倍. 编写程序时运用好MATLAB函数plot的语法格式2(x是向量, y是矩阵),以及格式4,使程序简洁. 使用命令axis equal,才能绘得真正的圆. 程序:x=-1:.05:1; % 由40段折线连接成半圆周y=sqrt(1-x.2

2、);plot(x,y;-y,k,2.*x,y;-y;2.*y;-2.*y,k)axis equaltitle(方法一(显函数))绘得的图形:评价:方法一绘得的图形在外切圆和椭圆的左右两端看起来明显还是折线,而在其余地方看起来比较光滑,原因在外切圆和椭圆的左右两端,导数趋于无穷大,所以,虽然x的步长是固定的,但是在左右两端,y会比别处有更显著的变化. 当然,如果令x的步长更小,例如x=-1:.01:1,绘得的图形将会看起来更光滑一些. 方法二(参数方程和伸缩变换)的参数方程为,关于伸缩变化和MATLAB函数plot的语法的讨论与方法一相同. 特意选取参数t的步长,使得半圆周仍然由40段折线连接而

3、成,如同方法一一样.程序:t=linspace(0,2*pi,81); % 由40段折线连接成半圆周x=cos(t);y=sin(t);plot(x,y,k,2.*x,y;2.*y,k)axis equaltitle(方法二(参数方程))绘得的图形:评价:虽然半圆周由同样多的折线段连接而成,但是方法二绘得的图形看起来处处一样光滑,事实上,方法二通过等分圆心角来取得圆周上的采样点,并连结线段,所以绘得的“圆形”实际上是正多边形.(2) 指数函数和对数函数的图像关于直线y=x对称.解答指数函数和对数函数互为反函数,在MATLAB函数plot的输入当中交换x和y的次序,就实现反函数,而且图像就是关于

4、直线y=x对称. 根据两点确定一条直线的原理,绘制直线段只需给出两端点的坐标. 使用命令axis equal,才能绘得真正的对称图形,加上坐标网格,能增强对称效果. 指数函数的自变量x的取值区间的左端不能太小,否则绘得的图像会在左边有一段与x轴重合. 程序:x=-3:.1:3;y=exp(x); plot(x,y,k,y,x,k,-3,20,-3,20,k)axis equalaxis(-3,20,-3,20)gridxlabel(x)ylabel(y)title(y=ex 和 y=ln x 的函数图像关于直线 y=x 对称)绘得的图形:(3) 黎曼函数的图像(要求分母q的最大值由键盘输入).

5、解答输入的英文单词是input,通过在MATLAB帮助文档检索input这个关键词,查到实现键盘输入的MATLAB函数是input,语法格式为:(1) user_entry = input(prompt) 输入项是一个字符数组,input将该字符数组显示在命令窗口,作为提示语,等待用户从键盘输入数值数组并按回车键;input将用户从键盘输入的数值数组赋值给user_entry所代表的变量名.(2) user_entry = input(prompt, s) 第二输入项是规定的字符“s”,表示等待用户从键盘输入的是字符数组.条件“是既约分数,0 x0”,即p和q是正整数,pq,p和q的最大公约数

6、等于1. 例如:当q=2时,有黎曼函数的图像的一个坐标点(1/2 , 1/2);当q=3时,有黎曼函数的图像的两个坐标点(1/3 , 1/3)和(2/3 , 1/3);当q=4时,有黎曼函数的图像的两个坐标点(1/4 , 1/4)和(3/4 , 1/4),而x=2/4不是既约分数;可见,在程序中应设置二重循环语句:第一重(外重)是分母q从2到由键盘输入的最大值的循环,步长为1;第二重(内重)是分子p从1到q-1的循环,步长为1,如果p和q的最大公约数等于1,就把p/q和1/q分别添加入横坐标数组x和纵坐标数组y. 注意x和y需要在循环语句之前说明为空数组.当x为有理数(0 x1)时,黎曼函数的

7、图像是离散的点集;当x为无理数(0 x In nlinfit at 224bc = 0. 7.7507 1743.6sec = 2263.9ans = -1.3146e-008 4.1567e-008 3.5492e-005结果分析:(i) 取定=3.9,=1790,拟合,则得=0.,误差平方和等于17418,最大;(ii) 取定=1790,拟合和,则得=14.994,=0.,误差平方和等于2263.9;(iii) 若拟合、和,则得=1743.6,=7.7507,=0.,误差平方和等于2263.9,、误差平方和以及的计算结果与方法b的误差都非常微小,但是MATLAB给出警告信息,指出条件存在病

8、态,参数未必能拟合得好.综上所述,(ii)是最佳拟合方案,其拟合效果图为:绘图程序:plot(t,x,k+,t,eb(bb,t),ko)axis(1780,2010,0,300)xlabel(年份 t),ylabel(美国人口 x (百万))title(指数增长模型非线性拟合效果图)legend(实际值,理论值,2)注 参考课本73页注1.7.4,如果比较(ii)和(iii)用nlinfit算得的协方差矩阵估计COV,会发现(ii)的COV为:COV = 2.8016e-007 -0. -0. 2.1129而(iii)的COV为:COV = 2.9668e-007 -8.3191e+005 -

9、7.5469e+006 -8.3191e+005 3.8741e+020 3.5145e+021 -7.5469e+006 3.5145e+021 3.1883e+022前者是准确的,而后者却存在很大的误差;事实上,指数增长模型是微分方程初值问题的经过点的积分曲线的显函数表达式. (i)要拟合的积分曲线的初值点固定在点(1790,3.9),只有待定;(ii)要拟合的积分曲线的初值点(1790,)和参数都待定. (ii)的候选的积分曲线的集合比(i)的大得多,所以(ii)能找到误差平方和更小的结果. 至于(ii)和(iii),在理论上会找到同一条积分曲线,但是在计算上,由于(ii)的待定参数比(

10、iii)的少一个,计算也更精确、更省时;方法c的待定参数和之中有一个冗余,会导致严重的计算误差.(2) 通过变量替换,可以将属于非线性模型的指数增长模型转化成线性模型,并用MATLAB函数polyfit进行计算,请说明转化成线性模型的详细过程,然后写出程序,给出拟合参数和误差平方和的计算结果,并展示拟合效果图.解答对指数增长模型两边求对数,得固定,引进变量替换,则转化为一次多项式. 根据表1.14的数据,计算得,其中, 然后用MATLAB函数polyfit计算出的最小二乘估计值,进而程序:t=1790:10:2000;x=3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,

11、38.6,50.2,62.9,76,92,. 106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4;X=t-1790;Y=log(x);b=polyfit(X,Y,1)r=b(1)x_0=exp(b(2)eb=(a,t)a(2).*exp(a(1).*(t-1790);xhat=eb(r,x_0,t);sse=sum(x-xhat).2)plot(t,x,k+,t,xhat,ko)axis(1780,2010,0,300)xlabel(年份 t),ylabel(美国人口 x (百万))title(指数增长模型线性化拟合效果图)legend(

12、实际值,理论值,2)计算结果为:b = 0. 1.7992r = 0.x_0 = 6.045sse = 34892拟合得=6.045,=0.,误差平方和等于34892. 拟合效果图为:(3) 请分析指数增长模型非线性拟合和线性化拟合的结果有何区别?原因是什么?解答指数增长模型线性化拟合的误差平方和比非线性拟合大很多;观察拟合误差比较图,可以发现:非线性拟合的拟合误差比较均匀,线性化拟合的拟合误差却随着人口的增加而越开越大.绘图程序:plot(x,x-eb(bb,t),kx,x,x-xhat,ks,0,300,0,0,k)xlabel(美国人口(百万)),ylabel(拟合误差)title(指数

13、增长模型的拟合误差比较图)legend(非线性拟合,线性化拟合,3)原因:因为对于数值越大的数据,由于求对数带来的损失越大,以至于线性化拟合的误差越大.(4) 如果用阻滞增长模型模拟美国人口1790年至2000年的变化过程,请用MATLAB统计工具箱的函数nlinfit计算阻滞增长模型的以下三个数据拟合问题:(i) 取定=3.9,=1790,拟合待定参数和;(ii) 取定=1790,拟合待定参数、和;(iii) 拟合待定参数、和.要求写出程序,给出拟合参数和误差平方和的计算结果,并展示误差平方和最小的拟合效果图.解答程序如下:t=1790:10:2000;x=3.9,5.3,7.2,9.6,1

14、2.9,17.1,23.2,31.4,38.6,50.2,62.9,76,92,. 106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4;za=(b,t)b(1).*3.9./(3.9+(b(1)-3.9).*exp(-b(2).*(t-1790);ba=nlinfit(t,x,za,300,.02)sea=sum(x-za(ba,t).2)zb=(b,t)b(1).*b(3)./(b(3)+(b(1)-b(3).*exp(-b(2).*(t-1790);bb=nlinfit(t,x,zb,300,.02,3.9)seb=sum(x-zb(

15、bb,t).2)zc=(b,t)b(1).*b(3)./(b(3)+(b(1)-b(3).*exp(-b(2).*(t-b(4);bc=nlinfit(t,x,zc,300,.02,3.9,1790)sec=sum(x-zc(bc,t).2)计算结果为:ba = 342.44 0.sea = 1224.9bb = 446.57 0. 7.6981seb = 457.74Warning: The Jacobian at the solution is ill-conditioned, and some model parameters may not be estimated well (the

16、y are not identifiable). Use caution in making predictions. In nlinfit at 224bc = 446.57 0. 5.1752 1771.3sec = 457.74结果分析:(i) 若取定=3.9,=1790,拟合和,则得=0.,=342.44,误差平方和等于1224.9;(ii) 若取定=1790,拟合、和,则得=7.6981,=0.,=446.57,误差平方和等于457.74;(iii) 若拟合、和,则得=1771.3,=5.1752,=0.,=446.57,误差平方和等于457.74. (iii)的结果实质上与(ii)相同,但是MATLAB给出警告信息,指出条件存在病态,参数未必能拟合得好.综上所述,我们认为(ii)是最佳拟合方案. 绘图程序:plot(t,x,k+,t,zb(bb,t),ko)axis(1780,2010,0,300)xlabel(年份 t),ylabel(美国人口 x (百万))title(阻滞增长模型非线性拟合效果图)legend(

温馨提示

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

评论

0/150

提交评论