数值计算方法课程设计.docx

数值计算方法课程设计.docx

ID:61401680

大小:23.24 KB

页数:6页

时间:2021-01-26

数值计算方法课程设计.docx_第1页
数值计算方法课程设计.docx_第2页
数值计算方法课程设计.docx_第3页
数值计算方法课程设计.docx_第4页
数值计算方法课程设计.docx_第5页
资源描述:

《数值计算方法课程设计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数值计算方法课程设计12020年4月19日文档仅供参考《数值计算方法》课程设计非线性方程(组)的解法问题的提出分析比较Newton法、Newton法的变形格式。然后分别用Newton法、简化Newton法、选取不同的初值求解下面方程组,对于相同的精度要求,比较这两种方法的运行时间。f1(x1,x2)x12x230f2(x1,x2)2x12x2250背景分析牛顿法是一种重要迭代法,她是逐步线性化方法的典型代表,牛顿法的特点是每一步都需要计算f(x(k))以及f'(x(k)),其计算量比较大,为了减少计算量,提出简化牛顿法。算法思想1、牛

2、顿法设有非线性方程组F(x)0其中F(x)(f1(x),f2(x),...,fk(x))T由fi(x)偏导数作成的矩阵记为J(x),称为F(x)的雅克比矩阵f1(x)f1(x)f1(x)x1...xnx2f2(x)f2(x)f2(x)J(x)...xnx1x2.........22020年4月19日文档仅供参考fn(x)fn(x)...fn(x)x1x2xn设x*为F(x)0的解,且x(k)(x1(k),x2(k),...,xn(k))为x*的近似解。利用多元函数fi(x)在x(k)点的泰勒公式有f(x)f(k))(x(k)fi(x(

3、k))...(xx(k)fi(x(k))1n(xx(k))(xx(k))?2fi(Ci)(xx)n)jjlP(x)R(i1,2,...,n)ii11x1nxn2j,l1lixjxl其中,Ci在x(k)与x的所的段内。如果用上式中的性函数P(x)近似替代f(x),并将性方程iiPi(x)fi(x(k))(x1(k)fi(x(k))(xnxn(k)fi(x(k))⋯..(1)x1)...)0x1xn的解作x*的第k1次近似解x(k1)将(1)式写成矩形式,即F(x(k))J(x(k))(xx(k))0J(x(k))非奇异矩,牛迭代公式:x

4、(0)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(2)x(k1)x(k)J(x(k))1*F(x(k))(k0,1,2)求解非性方程F(x)0牛方法x(0)(k)V(k)(k))J(x)xF(xx(k1)x(k)Vx(k)2、化牛法在牛法的基上,了减少算量,将J(x(k))均取J(x(0)),得如下化牛公式:x(0)⋯⋯⋯⋯⋯⋯⋯(3)x(k1)x(k)J(x(0)1)*F(x(k))(k0,1,2)32020年4月19日文档仅供参考其中(2)(3)式均为线性收敛的。算法设计将一个非线性方程组写成向量的形式有:F(x)=0牛顿迭代法的公式就是:x(k+1

5、)=x(k)-F’(k)(x)-1F(x(k))其中’(k)为矩阵,我写的这段程序就是根据这个公式F(x)Jacobi来的。运用MATLAB中的jacobian求出F的雅克比矩阵,用inv求逆matrix=@(varargin)[varargin{:}]构造迭代函数在比较牛顿法和简化牛顿法运行时间方面,我们主要是经过比较迭代次数。程序清单牛顿法源程序:functionx=newton_solve(F,v,x0,e)if(~ischar(F)

6、

7、~ischar(v))%定义类型error('ParameterFandvshouldbec

8、hartype!');endif(~isnumeric(x0)

9、

10、~isnumeric(e))error('Parameterx0andeshouldbenumerictype!');42020年4月19日文档仅供参考endF=sym(F);v=sym(v);dF=jacobian(F,v);tF=inv(dF)*Fforindex=1:numel(v)tF=subs(tF,v(index),['x('num2str(index)')']);%把x分量化,把x1变成x(1),把x2变成x(2)endmatrix=@(varargin)

11、[varargin{:}].';%构造迭代函数phi=['x-'char(tF)];eval(['phi=@(x)'phi';']);err=inf;%无穷大xold=phi(x0);n=0;whileerr>exnew=phi(xold);%用本次结果与上次结果差的范数来衡量误差err=norm(xnew-xold);xold=xnew;n=n+1;%迭代次数大于10000是退出循环52020年4月19日文档仅供参考if(n>10000)break;endn%迭代次数endx=xold;简化牛顿法的源程序:functionx=sim

12、newton_solve(F,v,x0,e)if(~ischar(F)

13、

14、~ischar(v))%定义类型error('ParameterFandvshouldbechartype!');endif(~isnumeric

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。