77范文网 - 专业文章范例文档资料分享平台

牛顿法非线性方程求解

来源:网络收集 时间:2020-05-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

《MATLAB 程序设计实践》课程考核

---第39-40页

题1 : 编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MATLAB科学计

算》,王正林等著,电子工业出版社,2009 年) “牛顿法非线性方程求解”

弦截法本质是一种割线法,它从两端向中间逐渐逼近方程的根;牛顿法本质上是一种切线法,它从一端向一个方向逼近方程的根,其递推公式为:

xn?1?xn?f(xn) 'f(xn)初始值可以取f'(a)和f'(b)的较大者,这样可以加快收敛速度。 和牛顿法有关的还有简化牛顿法和牛顿下山法。

在MATLAB中编程实现的牛顿法的函数为:NewtonRoot。 功能:用牛顿法求函数在某个区间上的一个零点。 调用格式:root=NewtonRoot(f`a`b`eps) 其中,f为函数名;

a为区间左端点;

b为区间右端点 eps为根的精度;

root为求出的函数零点。 ,

流程图: 开始 输入参数值 nargin==3 N root=a Y f1==0 N root=b Y f2==0 N f1*f2>0 Y 两端点函数值乘积大于0 ! N Y eps=1.0e-4 dfa>dfb Y root=a-fa/dfa N root=b-fb/dfb N tol>eps Y root=r1-fx/dfx 输出结果 结束

牛顿法的matlab程序代码如下:

function root=NewtonRoot(f,a,b,eps)

%牛顿法求函数f在区间[a,b]上的一个零点 %函数名:f %区间左端点:a

%区间右端点:b %根的精度:eps %求出的函数零点:root if(nargin==3) eps=1.0e-4; end

f1=subs(sym(f),findsym(sym(f)),a); f2=subs(sym(f),findsym(sym(f)),b); if (f1==0) root=a; end if (f2==0) root=b; end

if (f1*f2>0)

disp('两端点函数值乘积大于0 !'); return; else tol=1;

fun=diff(sym(f)); %求导数 fa=subs(sym(f),findsym(sym(f)),a); fb=subs(sym(f),findsym(sym(f)),b); dfa=subs(sym(fun),findsym(sym(fun)),a); dfb=subs(sym(fun),findsym(sym(fun)),b);

if(dfa>dfb) %初始值取两端点导数较大者 root=a-fa/dfa; else

root=b-fb/dfb; end

while(tol>eps) r1=root;

fx=subs(sym(f),findsym(sym(f)),r1);

dfx=subs(sym(fun),findsym(sym(fun)),r1); %求该点的导数值 root=r1-fx/dfx; %迭代的核心公式 tol=abs(root-r1); end end

例:求方程3x^2-exp(x)=0的一根

解:在MATLAB命令窗口输入:

>> r=NewtonRoot('3*x^2-exp(x)',3,4) 输出结果:

X=3.7331

2、编程解决以下科学计算问题

1) 二自由度可解耦系统的振动模态分析,二自由度振动系统如图所示,其一般方程为:

m1x1?(c1?c2)x1?c2x2?(K1?K2)x1?K2x2?0m2x2?c2(x2?x1)?K2(x2?x1)?0可写成矩阵形式:Mx?Cx?Kx?0

...........

设C=0,即无阻尼情况,则系统可解耦为两种独立的振动模态。 流程图:

开始 输入参数值 构成参数矩阵 设定初始条件 i=1:round(tf/dt)+1 循环计算矩阵指数 绘制图象 结束

系统解耦的振动模态的MATLAB代码如下: function erziyoudu()

%输入各原始参数

m1=input('m1=');m2=input('m2='); %质量

k1=input('k1=');k2=input('k2='); %刚度

%输入阻尼系数

c1=input('c1=');c2=input('c2=');

%给出初始条件及时间向量

x0=[1;0];

xd0=[0;-1];

tf=50; %步数

dt=0.1; %步长

%构成二阶参数矩阵

M=[m1,0;0,m2];

K=[k1+k2,-k2;-k2,k2];

C=[c1+c2,-c2;-c2,c2];

%构成四阶参数矩阵

A=[zeros(2,2),eye(2);-M\\K,-M\\C];

%四元变量的初始条件

y0=[x0;xd0];

%设定计算点,作循环计算

for i=1:round(tf/dt)+1

t(i)=dt*(i-1);

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库牛顿法非线性方程求解在线全文阅读。

牛顿法非线性方程求解.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1053164.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: