信息与计算科学系Matlab软件实习_第1页
信息与计算科学系Matlab软件实习_第2页
信息与计算科学系Matlab软件实习_第3页
信息与计算科学系Matlab软件实习_第4页
信息与计算科学系Matlab软件实习_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

彖j匚人孽秦皇岛分校NorthEasternUniversityAtQinHuangDaoMatlab软件实习论文非线性方程求根系别信息与计算科学专业信息与计算科学学号姓名指导教师2008年8月10日©*非线性方程求根摘要随着科学技术,生产力经济的发展,在科学与工程计算中存在着大量方程求根问题,例如贷款购房问题,工厂的最佳订货问题等都需要求解一类非线性方程的根,而本文就针对这些求根问题提出了解决方案,本文利用牛顿迭代法来结决方程的求根问题.首先根据实际问题列出数学模型,确定变量,给出各个条件及相关函数;然后对建立的模型进行具体分析和研究,选择合适的求解方法;编写函数的程序,用计算机求出方程的解,通过所求解分析具体情况.关键词:非线性方程,牛顿迭代法,Matlab©*目录TOC\o"1-5"\h\z\o"CurrentDocument"摘要I\o"CurrentDocument"1绪论11.1非线性方程求根的背景11.2非线性方程求根的目的:11.3非线性方程求根的内容:1\o"CurrentDocument"2牛顿迭代法的实现及应用32.1Newton迭代法具体例子的实现32.2应用牛顿法解决购房贷款利率问题42.3应用牛顿迭代法计算最佳订货量6\o"CurrentDocument"结论8\o"CurrentDocument"参考文献9o1绪论1.1非线性方程求根的背景随着社会的进步,科学技术的快速发展,各种工程等也如雨后春笋一般破土而出,对我们的日常生活产生了巨大的影响如天气预报、石油的勘探、地质灾害的预报等.牛顿迭代法是牛顿在17世纪提出的一种求解方程f3)=0.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要.而在各种科学和工程计算中往往要用到非线性方程组的求解,而牛顿法又是最基础的迭代法,在各种计算力学、控制工程等领域中发挥了不可代替的作用.而在数值计算中,非线性方程组的求解同样具有重要意义.随着计算机技术的成熟和高速发展,对于非线性方程求根问题出现了大量的数学软件(如MATLAB,Matheamatica,Maple,SAS,SPSSD等),计算机已经成为工程师应用数学解决工程问题的主要运算工具.同时,工程专业的学生对数学教育的需求重点正在从手工演绎和运算能力的培养转变到结合计算机软件进行建模、求解和论证能力的培养用.本文采用Matlab作为软件平台,介绍了非线性方程求根的内容.1.2非线性方程求根的目的为了推动科学的进步,能够很简便的完成各种工程计算,非线性方程组的求解方法以其独有的方法解决了各种计算,为今天以及将来的应用打下了坚实的基础.非线性方程组的求解正是为了这个目的才广泛被人们应用,此文也将给出非线性方程组求解的实际应用.1.3非线性方程求根的内容解非线性方程f⑴=0的主要算法是迭代法,如fsolve、二分法、牛顿迭代法等.迭代法是从已知的解的初始近似值七(简称初值)开始,利用某种迭代格式x=g3)求得一近似值序列x,x,,x,x,逐步逼近于所求的解a称为不动点).这一方12kk+1法是否成功取决于三个因素,.首先x=g(x)应与f(x)=0同解,其次初值x0的选取是否合适,一般要与真解靠近,最后也是最关键的是迭代序列是否收敛,为了保证收敛性,在真解附近应有Ig。)1<1否则迭代序列可能发散.最基本的迭代法是Newton迭代法,其迭代格式为x=x一*.Skf,(x)k从几何上说xk+1为用f(x)在气出切线代替f(x)求得的解,所以也称为切线法,当初值xo与真值a足够靠近,Newton迭代法收敛.对于单根,Newton法收敛速度很快;对于重根,收敛较慢.牛顿迭代法的大概算法为:给定初始值x0,e为根的容许误差,门为|f(x)的容许误差,N为迭代次数的容许值.如果f'(x)=0或迭代次数大于N,则算法失败,结束;否则执行②0计算xi=xo_%■3°)若x-x°|<e或|f(气)|〈「则输出%,程序结束;否则执行④令x°=气,转向①下面给出了Newton迭代法的计算程序.functionx=newton(fname,dfname,x0,e)%用途:Newton迭代法解非线性方程f(x)=0%格式:x=nanewton(fname,dfname,x0,e)x返回数值解,%fname和dfname分别表示f(x)及其导函数%F(x),x0为迭代初值,e精度要求(默认为1e-4)ifnargin<4,e=1e-4;%精度默认为1e-4endx=x0;x0=x+2*e;%使while成立,进入while后x0得到赋值whileabs(x0-x)>ex0=x;x=x0-feval(fname,x0)/feval(dfname,x0);end©2牛顿迭代法的实现及应用2.1Newton迭代法具体例子的实现用Newton迭代法解方程f(x)=x3+x2-3x-3=0在1.5附近的根.解:当x>2时,f(x)>0,f(x)>0,即f(x)恒正,所以根在[0,2].我们先用图解法找初值,在用Newton法程序newton.m求解.fun=inline('xA3+xA2-3*x-3');fplot(fun,[0,2]);gridon;图2.1f(x)的函数图像由图可知方程有唯一正根在[1.6,1.8]之间,我们取初值1.5代入Newton程序中.dfun=inline('3*xA2+2*x-3');formatlong;newton(fun,dfun,1.5,1e-4);formatshort;ans=1.73205080756888而用Matlab本身的函数fzero求出来的结果为:formatlong;fzero(inline('xA3+xA2-3*x-3'),1.5);formatshortans=1.73205080756888下面用牛顿迭代法解决一些实际问题2.2应用牛顿法解决购房贷款利率问题住房是居民消费的一个主要部分,大部分人选择银行按揭贷款,然后在若干年内逐月分期还款.如果你借了10万,还款额一定超过10万.月的欠款数,a为月还款,r为月利率.设贷款总额为%,贷款期限为N个月,采取逐月等额方式偿还本息.若七为第化个我们得到些列迭代关系式xk+1那么二(1+r)x-a,-(1+r)x-akk-1月的欠款数,a为月还款,r为月利率.xk+1那么=(1+r2)x-(1+ra-a=k-2=(1+r)2x-a[1+(1+r)++(1+r)k-1]0=(1+rk)x-a[+1k-)r1]/由此可以得到月还款计算公式0…(1+r)nxa—9-(1+r)n-1下面是《新民晚报》2000年3月30日第七版上的一则房产广告:表2.1房产广告建筑面积总价30%首付70%按揭月还款85.98m236万10.8万30年1436元不难算出,你向银行总共借了25.2万,30年内共要还51.96万,约为当初借款的两倍.这个案例中的贷款年利率是多少呢?我们根据a—0.1436,%=25.2,N—360,由以上a的求解公式得到:©25.2r(1+r)360-0.1436[(1+r)360-1]=0.我们令f(r)=25.2r(1+r)360-0.1436[(1+r)360-1],则次问题就转化成非线性方程求根的问题,令f(r)=0,求出r.我们先用Newton函数求解.在Matlab中输入如下程序:常识上,r应比当时活期存款月利率略高一些.我们用当时的活期存款月利率0.0198/2作为迭代初值,为了剔除r=0这个没有意义的根,我们对八r)稍作变形:clear;fun=inline('25.2*(1+r)A360/0.1436-((1+r)A360-1)/r','r')fun=Inlinefunction:fun(r)=25.2*(1+r)A360/0.1436-((1+r)A360-1)/rdfun=inline('25.2*360*(1+r)A359/0.1436-(360*(1+r)A359*r-((1+r)A360-1))/(rA2)');r=newton(fun,dfun,0.0198/2,1e-4);R=12*r然后求得结果:R=0.0553于是得出年利率为5.53%.下面我们用Matlab中的fzero函数检验一下:clear;fun=inline('25.2*(1+r)A360-((1+r)A360-1)/r*0.1436','r')fun=Inlinefunction:fun(r)=25.2*(1+r)A360-((1+r)A360-1)/r*0.1436r=fzero(fun,0.0198/2);R=12*r0.0553©'结果相同,可见牛顿迭代法的正确性.2.3应用牛顿迭代法计算最佳订货量汽车工厂为了保证生产的正常运作,配件供应一定要由保障.这些配件并不是在市场上随时可以买到的,所以往往要预先从配件供应商那里定货.由于配件供应商并不是生产单一产品,为你的定货必须要在流水线上作出调整,所以每次定货需要收取一定量的生产准备费.配件供应商的生产能力很大,开工后很快可以生产许多配件,但是你的汽车工厂并不是立即需要这么多,往往要在仓库里储存一段时间,为此你要付出储存费.如果订货量很小,必然需要频繁定货,造成生产准备费的增加;反之,若订货量很大,定货周期必然延长,生产准备费下降,但这样会造成储存费的增加.如何确定合适的订货量?实践中,这是一个相当复杂的问题,因为市场波动的影响是多方面的.我们先作一些必要的假设将问题简化.汽车工厂对配件的日需量是恒定的,每日为,件;所订配件按时一次性交货,生产准备费每次ki元;储存费按当日实际储存量计算,储存费每日每件k2元;你的工厂不许缺货.设一次定货X件,由于工厂不允许缺货,而为了节省存储费,交货日期应定为恰好用完时,所以定货日期TOC\o"1-5"\h\zT=x/r.(1)由于日需求量是恒定的,可以计算出第,天的存储量为q(t)=X-rt,0<t<T.(2)由于第t天的储存费为k2q(t),一个周期的总储存费为kEq(t)^kjTq(t)d.(3)220tt-1根据(1),(2),(3)得到一个周期总费用一X2C(x)=k+k—,优化目标是使单位产品费用C(x)kkx

f(x)rr+方,达到最小.由f'(x)=0即-k+土=o,

x22r可直接解得x=:2!二.这就是著名的经济批量定货公式.Y2当我们给出具体值时,非线性方程就可以求解了,由于具体的值不定,在此就不给出具体程序了.结论通过以上的论述我们可以知道计算机在现代生活中的应用已经如此普及,尤其是在数学计算当中,Matlab软件更是发挥了不可替代的作用.Matlab以其强大的功能,方便了当今数值计算,数学教程,及工程计算等众多领域.本文在以Matlab软件为平台的基础上,给出了非线性方程的一般解法,非线性方程的求解有二分法,牛顿迭代法,简单牛顿法,牛顿下山法,弦截法,抛物线法等.二分法的优点是算法简单,且总是收敛的,但由于二分法的收敛速度太慢,故一般不单独将其用于求根,只用其为根求得一个较好的近似值园.其他的求根方法各有优缺点,这里就不一一赘述.本文主要介绍了牛顿迭代法及其在现实生活中的应用.牛顿迭代法为平方收敛,故其收敛速度较快,但对初值的选取需要谨慎,如果初值选取错误,则可能导致方程迭代发散,最终不能求解出正确解.在计算一些对精度要求特别苛刻时,最好给出较高的精度输入及输出,防止因为精度问题导致误差过大,最终影响结果.牛顿迭代法可以应用于分形理论.分形理论是近二、三十年才发展起来的一门新的学科,其主要描述自然界和非线性系统中不光滑和不规则的几何形体.在地质、材料科学、物理学、计算机科学、艺术设计等方面有着十分广阔的应用前景.利用牛顿迭代的数学原理和方法,实现牛顿迭代法的分形图形

温馨提示

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

评论

0/150

提交评论