欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数值分析上机作业1-1解析(共9页).doc

    • 资源ID:13990785       资源大小:285.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数值分析上机作业1-1解析(共9页).doc

    精选优质文档-倾情为你奉上数值计算方法上机题目11、实验1. 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”和“坏”之别。所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。希望读者通过本实验对此有一个初步的体会。数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。问题提出:考虑一个高次的代数多项式 (E1-1)显然该多项式的全部根为l,2,20,共计20个,且每个根都是单重的(也称为简单的)。现考虑该多项式方程的一个扰动 (E1-2)其中是一个非常小的数。这相当于是对(E1-1)中的系数作一个小的扰动。我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。实验内容:为了实现方便,我们先介绍两个 Matlab函数:“roots”和“poly”,输入函数uroots(a)其中若变量存储维的向量,则该函数的输出为一个维的向量。设a的元素依次为,则输出u的各分量是多项式方程的全部根,而函数b=poly(v)的输出b是一个n1维变量,它是以n维变量v的各分量为根的多项式的系数。可见“roots”和“Poly”是两个互逆的运算函数. ve=zeros(1,21); ve(2)=ess; roots(poly(1:20)+ve)上述简单的Matlab程序便得到(E1-2)的全部根,程序中的“ess”即是(E1-2)中的。实验要求:(1)选择充分小的ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数很小,我们自然感觉(E1-1)和(E1-2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?(2)将方程(E1-2)中的扰动项改成或其他形式,实验中又有怎样的现象出现?实验步骤:(1)程序function t_charpt1_1clcresult=inputdlg('请输入扰动项:在0 20之间的整数:','charpt 1_1',1,'19');Numb=str2num(char(result);if(Numb>20)|(Numb<0)errordlg('请输入正确的扰动项:0 20之间的整数!');return;end result=inputdlg('请输入(0 1)之间的扰动常数:','charpt 1_1',1,'0.00001');ess=str2num(char(result);ve=zeros(1,21);ve(21-Numb)=ess;root=roots(poly(1:20)+ve);x0=real(root); y0=imag(root);plot(x0',y0', '*');disp('对扰动项 ',num2str(Numb),'加扰动',num2str(ess),'得到的全部根为:');disp(num2str(root);二、 实验结果分析 ess分别为1e-6,1e-8.1e-10,1e-12.对扰动项 19加扰动1e-006得到的全部根为:21.3025+1.56717i 21.3025-1.56717i 18.5028+3.6004i 18.5028-3.6004i 15.1651+3.76125i 15.1651-3.76125i 12.4866+2.88278i 12.4866-2.88278i 10.5225+1.71959i 10.5225-1.71959i 9.04485+0.i 9.04485-0.i 7.9489+0i 7.00247+0i 5.99995+0i 5+0i 4+0i 3+0i 2+0i 1+0i 对扰动项 19加扰动1e-010得到的全部根为:19.9953+0i 19.0323+0i 17.8696+0i 17.2186+0i 15.4988+0.i 15.4988-0.i 13.7707+0i 13.1598+0i 11.9343+0i 11.029+0i 9.99073+0i 9.00247+0i 7.99952+0i 7.00007+0i 5.99999+0i 5+0i 4+0i 3+0i 2+0i 1+0i ess分别为1e-6,1e-8.1e-10,1e-12的图像如下: 从实验的图形中可以看出,当ess充分小时,方程E.1.1和方程E.1.2的解相差很小,当ess逐渐增大时,方程的解就出现了病态解,这些解都呈现复共轭性质。(2) 将扰动项加到x18上后,ess=1e-009时方程的解都比较准确,没有出现复共轭现象。ess=1e-008时误差与x19(ess=1e-009)时相当,即扰动加到x18上比加到x19小一个数量级。对x8的扰动ess=1000时没有出现复共轭,误差很小;对x的扰动ess=10e10时没有出现复共轭,误差很小。因此,扰动作用到xn上时,n越小,扰动引起的误差越小。2、实验2。多项式插值的振荡现象,即插值的龙格(Runge)现象问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然,拉格朗日插值中使用的节点越多,插值多项式的次数就越高、自然关心插值多项式的次数增加时,是否也更加靠近被逼近的函数。龙格给出的一个例子是极著名并富有启发性的。设区间上函数实验内容:考虑区间的一个等距划分,分点为则拉格朗日插值多项式为其中的,是n次拉格朗日插值基函数。实验要求:(l)选择不断增大的分点数目,画出原函数及插值多项式函数在上的图像,比较并分析实验结果。(2)选择其他的函数,例如定义在区间-5,5上的函数 重复上述的实验看其结果如何。(3)区间上切比雪夫点的定义为 以为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。实验步骤:(1) 试验程序:function y=Lagrange(x0, y0, x);% Lagrange插值 n= length(x0); m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if(j = k) p = p*(z - x0(j)/(x0(k) - x0(j); end end s = s + p*y0(k); end y(i) = s;endfunction t_charpt2 promps = '请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'titles = 'charpt_2'result = inputdlg(promps,'charpt 2',1,'f');Nb_f = char(result);if(Nb_f = 'f' & Nb_f = 'h' & Nb_f = 'g')errordlg('实验函数选择错误!');return;end result = inputdlg('请输入插值结点数N:','charpt_2',1,'10');Nd = str2num(char(result);if(Nd <1)errordlg('结点输入错误!');return;end switch Nb_f case 'f' f=inline('1./(1+25*x.2)'); a = -1;b = 1; case 'h' f=inline('x./(1+x.4)'); a = -5; b = 5; case 'g' f=inline('atan(x)'); a = -5; b= 5;endx0 = linspace(a, b, Nd+1); y0 = feval(f, x0); x = a:0.1:b; y = Lagrange(x0, y0, x); fplot(f, a b, 'co'); hold on; plot(x, y, 'b-');xlabel('x'); ylabel('y = f(x) o and y = Ln(x)-'); 增大分点n=2,3,时,拉格朗日插值函数曲线如图所示。 n=3 n=6 n=7 n=8 从图中可以看出,随着n的增大,拉格朗日插值函数在x=0附近较好地逼近了原来的函数f(x),但是却在两端x= -1和x=1处出现了很大的振荡现象。通过分析图形,可以看出,当n为奇数时,虽然有振荡,但振荡的幅度不算太大,n为偶数时,其振荡幅度变得很大。(2) 将原来的f(x)换为其他函数如h(x)、g(x),结果如图所示。其中h(x), g(x)均定义在-5,5区间上,h(x)=x/(1+x4),g(x)=arctan x。h(x), n=7 h(x), n=8h(x), n=9 h(x), n=10g(x), n=8 g(x), n=9g(x), n=12 g(x), n=13分析两个函数的插值图形,可以看出:随着n的增大,拉格朗日插值函数在x=0附近较好地逼近了原来的函数f(x),但是却在两端x= -5和x=5处出现了很大的振荡现象。通过图形可以看出,当n为偶数时,虽然有振荡,但振荡的幅度不算太大,n为奇数时,其振荡幅度变得很大。原因和上面f(x)的插值类似,h(x)、g(x)本身是奇函数,如果n为偶数,那么Lagrange插值函数Ln(x)的最高次项xn-1是奇次幂,比较符合h(x)、g(x)本身是奇函数的性质;如果n为奇数,那么Lagrange插值函数Ln(x)的最高次项xn-1是偶次幂,与h(x)、g(x)本身是奇函数的性质相反,因此振荡可能更剧烈。3、实验3。 样条插值的收敛性问题提出:一般的多项式插值不能保证收敛性,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,也超出了本课程的内容。通过本实验可以验证这一理论结果。实验内容:请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.中的函数或选择其它你有兴趣的函数,可以用 Matab的函数 “spline”作此函数的三次样条插值。在较新版本的Matlab中,还提供有spline工具箱,你可以找到极丰富的样条工具,包括B-样条。实验要求:(1)随节点个数增加,比较被逼近函数和样条插值函数误差变化情况。分析所得结果并与拉格朗目多项式插值比较。(2)样条插值的思想最早产生于工业部门。作为工业应用的例子,考虑如下问题:某汽车制造商用三次样条插值设计车门的曲线,其中一段的数据如下:0123456789100.00.791.532.192.713.033.272.893.063.193.290.80.2实验步骤:(1)程序:function t_charpt2promps = '请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'titles = 'charpt_2'result = inputdlg(promps,'charpt 2',1,'f');Nb_f = char(result);if(Nb_f = 'f' & Nb_f = 'h' & Nb_f = 'g')errordlg('实验函数选择错误!');return;end result = inputdlg('请输入插值结点数N:','charpt_2',1,'10');Nd = str2num(char(result);if(Nd <1)errordlg('结点输入错误!');return;end switch Nb_f case 'f' f=inline('1./(1+25*x.2)'); a = -1;b = 1; case 'h' f=inline('x./(1+x.4)'); a = -5; b = 5; case 'g' f=inline('atan(x)'); a = -5; b= 5;end x0 = linspace(a, b, Nd+1); y0 = feval(f, x0); x = a:0.1:b; cs = spline(x0, y0); y = ppval(cs, x); plot(x0, y0, 'o'); hold on; plot(x, y, 'k-'); xlabel('x'); ylabel('y = f(x) o and y = Spline(x)-');实验结果:如图所示。 f(x), n=5 n=10 n=20 h(x), n=5 h(x), n=10 n=20 g(x), n=5 n=10 n=20图中可以看出,由于其采用了分段三次多项式拟合的方法,随着三次样条插值的插值结点的增加,并没有出现振荡现象。(2) 程序:x0=0:10;y0=0.0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29; x=0:0.1:10;pp=csape(x0,y0,'complete',0.8 0.2);y = ppval(pp, x);plot(x0, y0, 'o'); hold on; plot(x, y, 'k-');xlabel('x'); ylabel('y = f(x) o and y = Spline(x)-');车门的曲线如下图:专心-专注-专业

    注意事项

    本文(数值分析上机作业1-1解析(共9页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开