非线性方程和线性方程的数值解.pdf
文本预览下载声明
非线性方程的几种数值解法
郭摇
摘要 :现在许多科学理论和工程技术问题都最终要化成非线性方程
f x =0 F x =0
() 或非线性方程组 () 的求解。对于非线性方程的数值
解法有很多种,如二分法,简易牛顿法,斯蒂芬森迭代法,牛顿迭:
代法,割线法等。
关键字非线性方程,数值解法:
1.概述
电脑硬件基本配置,处理器:Intelcorei3-380M,双核,主频
2.53GHZ DDR3 2GB 320GB.Matlab7.0
内存: , 内存,硬盘: 版本。
在许多科学与工程问题总需要求解一个非线性方程:
F(x)=0 ()1
F(x) F(x) 1
的根,其中 是连续的非线性函数,当 为多项式时,方程 ()
F(x) x 1
是代数方程;当 为 的超越函数时,上述( )是超越方程,对
于非线性方程,求它的解析解有时很困难甚至不可能,因此选择数值
方法来求它的近似解,即数值解。
2.几种非线性方程的数值解法
2.1二分法
在求解非线性方程近似跟的方法中最简单最直观的方法是二分法,
二分法有称对分法。
f x [a,b] f(a)f(b)0
二分法基本思路:若 ()在 上连续,且有 ,则有
零点定理知,存在一点 使得c x∈ (a,b),使得f (c)=0。
二分法的算法:
1)取初始有更区间[a,b],满足f(a)f(b)0,以及相应的精度要求ε。
2)若(b-a)/2ε,则停止计算。
3)否则取x=(b-a)/2,如果f (a)f (b)0,b=x;否则a=x,转到步骤2。
基本代码如下:
functiony=second2(x0,x1,tol)
symsxf;
f=input(输入函数形式fx=);
e=x1-x0;k=0;
%b=eval(b);a=eval(a);
tic
whileetol
x=x0;
m=eval(f);
%x=b;
%n=eval(fun);
c=(x0+x1)/2;
x=c;
n=eval(f);
if m*n0
x1=c;
elseif m*n0
x0=c;
else
x0=c;x1=c
end
e=e/2;k=k+1;
end
x=(x0+x1)/2;
x%x为答案
k%k为次数
toc
2.2 牛顿迭代法
在求解非线性方程f(x)=0时,困难在于f(x)是非线性 ,为了克
服这一困难,考虑它的线性展开。
基本思路:设当前点X,在X 处 Taylor展开式为:
k k
f(X)≈f(X)+f (X)(X-X) (2)
k k k
令f(X)=0,可以得到方程的近似方程:
f(X)+f (X)(X-X)=0
k k k
当f (X)≠0,解其方程得到:
k
X =X-f(X)/f (X) k=0,1,2 (3)
显示全部