全球旧事资料 分类
实验报告
yyhhit163com
实验报告一
题目:非线性方程求解
摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newto
法及改进的Newto
法。前言:(目的和意义)掌握二分法与Newto
法的基本原理和应用。数学原理:对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newto
法。对于二分法,其数学实质就是说对于给定的待求解的方程fx,其在ab上连续,fafb0,且fx在ab内仅有一个实根x,取区间中点c,若,则c恰为其根,否则根据fafc0是否成立判断根在区间ac和cb中的哪一个,从而得出新区间,仍称为ab。重复运行计算,直至满足精度为止。这就是二分法的计算思想。Newto
法通常预先要给出一个猜测初值x0,然后根据其迭代公式
xk1xk
fxkfxk
产生逼近解x的迭代数列xk,这就是Newto
法的思想。当x0接近x时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为
xk1xkr
fxkfxk
其中r为要求的方程的根的重数,这就是改进的Newto
法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newto
法快的多。程序设计:本实验采用Matlab的M文件编写。其中待求解的方程写成fu
ctio
的方式,如下fu
ctio
yfxyxxsi
x写成如上形式即可,下面给出主程序。二分法源程序:clear
1
f实验报告
yyhhit163com
给定求解区间b15a0误差R1k0迭代次数初值whileR5e6cab2iff12af12c0acelsebce
dRba求出误差kk1e
dxc给出解Newto
法及改进的Newto
法源程序:clear输入函数fi
put请输入需要求解函数s求解fx的导数dfdifff改进常数或重根数miu2初始值x0x0i
puti
puti
itialvaluex0k0迭代次数max100最大迭代次数Revalsubsfx0x求解fx0,以确定初值x0时否就是解whileabsR1e8x1x0miuevalsubsfx0xevalsubsdfx0xRx1x0x0x1kk1ifevalsubsfx0x1e10
2
f实验报告
yyhhit163com
breake
difkmax如果迭代次数大于给定值,认为迭代不收敛,重新输入初值ssi
putmayberesultiserrorchoosea
ewx0y
sifstrcmpssyx0i
puti
puti
itialvaluex0k0elsebreake
de
de
dk给出迭代次数xx0;给出解结果分析和讨论:1用二分法计算方程si
x计算结果为x140441513061523;fx3797205105904311e007;k18;由fx知结果满足要求,但迭代次数比较多,方法r
好听全球资料 返回顶部