云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > matlab程序设计实践

matlab程序设计实践

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 14:17:41

1. 编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MATLAB科学计算》,王正林等著,电子工业出版社,2009年) “牛顿下山法求非线性方程组解” 解: 算法说明:

牛顿下山法的迭代公式为:

Xn+1= xn -ω(F(xn))-1F(xn)

ω的取值范围为0<ω≤1,为了保证收敛,还要要求ω的取值使得:

‖F(xn+1)‖<‖F(xn)‖

可以用逐次减半法来确定ω。为了减少计算量,还可以用差商来代替偏导数。在MATLAB中编程实现的非线性方程组的牛顿下山法的函数为:mulDNewton。

功能:用牛顿下山法求非线性方程组的一个解。 调用格式:[r,n]=mulDNewton(x0,eps)。 其中,x0为初始迭代向量; eps为迭代精度; r为求出的解向量; n为迭代步数。

牛顿下山法的MATLAB代码如下:

function [r,n]=mulDNewton(x0,eps)

%牛顿下山法求非线性方程组的一个解 %初始迭代向量:x0 %迭代精度:eps

%解向量:r %迭代步数:n

if nargin==1 eps=1.0e-4; end

r=x0-myf(x0)/dmyf(x0); n=1; tol=1; while tol>eps x0=r; ttol=1; w=1;

F1=norm(myf(x0));

while ttol>=0 %下面的循环是选取下山因子w的过程 r=x0-w*myf(x0)/dmyf(x0); %核心的迭代公式 ttol=norm(myf(r))-F1; w=w/2; end

tol=norm(r-x0); n=n+1;

if (n>100000) %迭代步数控制 disp('迭代步数太多,可能不收敛!'); return; end end

实例:牛顿下山法求解非线性方程组应用实例。采用牛顿下山法求下面方程组的一个根。

0.5sinx1+0.1cos(x1x2)- x1=0 0.5cosx1-0.1sinx2–x2 =0 其初始迭代值取(0,0)。

解:首先建立myf.m函数文件,输入以下内容:

function f=myf(x)

f(1)=0.5*sin(x(1))+0.1*cos(x(2)*x(1))-x(1);

f(2)=0.5*cos(x(1))-0.1*sin(x(2))-x(2); f=[f(1) f(2)];

再建立dmyf.m导数的雅克比矩阵,输入以下内容:

function df=dmyf(x)

df=[0.5*cos(x(1))-0.1*x(2)*sin(x(2)*x(1))-1 -0.1*x(1)*sin(x(2)*x(1)); -0.5*sin(x(1)) -0.1*cos(x(2))-1];

然后,在MATLAB命令窗口中输入:

>> [r,n]=mulDNewton([0,0])

输出计算结果为:

r =

0.1979 0.4470 n = 5

由计算结果可知,初始迭代值取(0,0)时,用5步迭代得到了方程组的一组解(0.1979,0.4470),牛顿下山法也是一种快速且有效的求解非线性方程组的方法。 流程图: ⑴ 源程序

开始 r=x0-myf(x0)/dmyf(x0); n=1;tol=1; 否

tol>eps 是

否 是 ttol>=0 x0=r;ttol=1; w=1;F1=norm(myf(x0));

否 r=x0-w*myf(x0)/dmyf(x0); ttol=norm(myf(r))-F1; w=w/2; tol=norm(r-x0); n=n+1; n>100000 是

disp('迭代步数太多,可能不收敛!'); 结束

搜索更多关于: matlab程序设计实践 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1. 编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MATLAB科学计算》,王正林等著,电子工业出版社,2009年) “牛顿下山法求非线性方程组解” 解: 算法说明: 牛顿下山法的迭代公式为: Xn+1= xn -ω(F(xn))-1F(xn) ω的取值范围为0<ω≤1,为了保证收敛,还要要求ω的取值使得: ‖F(xn+1)‖<‖F(xn)‖ 可以用逐次减半法来确定ω。为了减少计算量,还可以用差商来代替偏导数。在MATLAB中编程实现的非线性方程组的牛顿下山法的函数为:mulDNewton。 功能:用牛顿下山法求非线性方程组的一个解。 调用格式:[r,n]=mulDNewton(x0,eps)。 其中,x0为初始迭代向量; eps为迭代精度; r为求出的解向量;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com