非线性方程组的牛顿迭代法,最速下降法

2020-04-17 05:20

数学软件实验任务书

课程名称 学号 数学软件实验 班级 非线性方程组的牛顿迭代法,最速下降法,不动点迭实验课题 代法 熟悉非线性方程组的牛顿迭代法,最速下降法,不动实验目的 点迭代法 运用Matlab/C/C++/Java/Maple/Mathematica等其中实验要求 一种语言完成 非线性方程组的牛顿迭代法 非线性方程组的最速下降法 非线性方程组的不动点迭代法 实验内容 成绩 教师 实验一 非线性方程组的牛顿迭代法 1 实验原理

对于非线性方程

?f1(x1,x2,?,xn)???f(x,x,?,x)212n? f???????f(x,x,?,x)n??n12在x(k )处按照多元函数的泰勒展开,并取线性项得到

?f1(k)(x1(k),xn(k),?,xn(k))??x1(k?1)?x1(k)??(k)(k)(k)?(k?1)(k)?(k)?f(x,x,?,x)x?x1nn2??n??f?(x(k))?2?0

?????????f(k)(x(k),x(k),?,x(k))???x(k?1)?x(k)??1nnn??n??n其中

?f1???f1???x?xn?1??f?(x)??????

???f?fnn????x??x?n??1?x1(k?1)??x1(k)??f1(k)(x1(k),xn(k),?,xn(k))??(k?1)??(k)??(k)(k)(k)(k)?xxf(x,x,?,x)?1nn?2???2??[f?(x(k))]?1?n ????????????x(k?1)????x(k)???f(k)(x(k),x(k),?,x(k))??1nn?n??n??n?2 数据来源

计算非线性方程组

?x2?2x?y?0.5?0 ?22?x?4y?4?0初值取?????

?x??y??1??1?3 实验步骤

步骤一:编写牛顿迭代法的基本程序。 打开 Editor 编辑器,输入以下语句: function [x,n,data]=new_ton(x0,tol) if nargin==1 tol=1e-10; end

x1=x0-f1(x0)/df1(x0); MATLAB 241 数值分析与应用 n=1;

%迭代过程

while (norm(x1-x0)>tol) x0=x1;

x1=x0-f1(x0)/df1(x0); n=n+1;

úta 用来存放中间数据 data(:,n)=x1; end x=x1;

以文件名new_ton.m保存。

步骤二:编写方程函数与方程的Jacobi矩阵函数。 (1)打开Editor 编辑器输入以下语句: %牛顿迭代法的方程函数 function f=f1(x0) x=x0(1); y=x0(2);

f1=x^2-2*x-y+0.5; f2=x^2+4*y^2-4;

%最后方程函数以行向量输出 f=[f1 f2];

以文件名f1.m保存。

(2)新打开Editor 编辑器输入以下语句: %牛顿迭代法的jacobi矩阵 function f=df1(x0); x=x0(1); y=x0(2);

f=[2*x-2 -1 2*x 8*y];

以文件名df1.m保存。 步骤三:编写主函数。

打开 Editor 编辑器输入以下语句: %牛顿迭代法的主函数 x0=[1 1];

[x,n,data]=new_ton(x0); disp('计算结果为') x

disp('迭代次数为') n

%抽取data1中第一个变量数据画出曲线 subplot(2,1,1)

plot(data(1,:)),title('x 在迭代中的变化')

%抽取data中的第二个变量数据画出其变化曲线 subplot(2,1,2)

plot(data(2,:)),title('y在迭代中的变化') 以文件名new_main.m保存。

4 实验结果

计算结果为 x =

-0.222214555069498 0.993808418603981 迭代次数为 n = 16

实验二 非线性方程组的最速下降法 1 实验原理

对于非线性方程组

?f1(x1,x2,?,xn)???f(x,x,?,x)212n? f???????f(x,x,?,x)n??n12令

h?f12?f22???fn2

如果给定一个初值x0,我们希望找到一条路线每一次x迭代以后代价函数都会比原来小一些。

xk?1?xk??pk

l称为步长因子?,pk 的不同,就构成了不同的下降算法。如果取

p(x)??gradh(x),pk?p(xk)

就是所谓的最速下降法。最速下降法是大范围收敛的h在某xk出沿最速下降方向

pk(x)??gradh(xk)

下降的最快

2 数据来源

计算非线性方程组

?x2?2x?y?0.5?0 ?22?x?4y?4?0初值取?????

?x??y??1??1?3 实验步骤

步骤一:打开 Editor 编辑器,输入以下语句:

syms x y

f1=x^2-2*x-y+0.5; f2=x^2+4*y^2-4; h=f1^2+f2^2

grad=[diff(h,x),diff(h,y)]; grad=simple(grad)

以文件名tidu_fuhao.m保存。 步骤二:编写梯度函数。

打开 Editor 编辑器,输入以下语句:


非线性方程组的牛顿迭代法,最速下降法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于VCCT的裂纹扩展模拟

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: