大学数学实验ExperimentsinMathematics实验6非线性方程求解《数学建模与数学实验》---李焕荣实验6什么叫方程(组)?方程:包含未知数(或/和未知函数)的等式方程组:包含未知数(或/和未知函数)的一组等式不包含未知函数的方程组的一般形式:F(x)=0x=(x1,x2,…,xn)T,F(x)=(f1(x),f2(x),…,fm(x))T(一般m=n)满足方程(组)的未知数的取值称为方程(组)的解,或称为F(x)的零点。单变量方程(一元方程):f(x)=0,“解”也称为“根”实验6实验6非线性方程的特点方程根的特点:•n次代数方程有且只有n个根(包括复根、重根);•5次以上的代数方程无求根公式;•超越方程有无根,有几个根通常难以判断。方程分类:•代数方程:a0xn+a1xn-1+…+an=0;•超越方程:包含超越函数(如sinx,lnx)的方程;•非线性方程:n(2)次代数方程和超越方程。实验6实验6实验6的基本内容3.实际问题中非线性方程的数值解1.非线性方程f(x)=0的数值解法:•迭代方法的基本原理;•牛顿法;拟牛顿法.2.推广到解非线性方程组4.分岔和混沌现象实验6实验6实例1路灯照明道路两侧分别安装路灯,在漆黑的夜晚,当两只路灯开启时,两只路灯连线的路面上最暗的点和最亮的点在哪里?h2P2P1sh1•如果P2的高度可以在3米到9米之间变化,如何使路面上最暗点的亮度最大?•如果两只路灯的高度均可以在3米到9米之间变化呢?s=20(米)P1=2,P2=3(千瓦)h1=5,h2=6(米)实验6实验6实例1路灯照明建立坐标系如图,两个光源在点Q(x,0)的照度分别为(k是由量纲单位决定的比例系数,不妨记k=1)2222221111sin,sinrPkIrPkI点Q的照度2222222121)(,xshrxhrxx21Oh2P2r1P1sr2h1yQ2211111sinxhhrh2222222)(sinxshhrh322222322111)()(xshhPxhhPxC实验6实验6实例1路灯照明为求最暗点和最亮点,先求C(x)的驻点xx21Oh2P2r1P1sr2h1y令C’(x)=0:解析解是难以求出,需数值求解Q322222322111)()(xshhPxhhPxC522222522111)()(33)('xshxshPxhxhPxC实验6实验6•根的隔离:二分法解方程f(x)=0第一步——确定根的大致范围•图形法:作f(x)图形,观察f(x)与x轴的交点非线性方程的基本解法-2-1.5-1-0.500.511.522.5-50-40-30-20-100102030012813622346xxxxx图形法有4个根分别位于x=-1.75,-0.75,1.00,2.40附近实验6实验6若对于ba,有0)()(bfaf,则在),(ba内)(xf至少有一个零点,即0)(xf至少有一个根。二分法的原理二分法的实现不足收敛速度较慢0)(af0)(bf0)(0xf0)(0xf),(),(),(11nnbababa011,xbaabbxa101,区间每次缩小一半,n足够大时,可确定根的范围ab)(xfxxab)(xf0x0x中点),(:0bax非线性方程的基本解法实验6实验6例1014)(2xxxf2114)(xxx,迭代公式:2114kkxx)1/(14)(2xxx,迭代公式:)1/(141kkxx)12/()14()(23xxxxxx,迭代公式:)12/()14(21kkkkkxxxxx6)4(,2)3(ff)4,3(x存在根)(xx非线性方程迭代法的基本思想将原方程0)(xf改写成容易迭代的形式)(xx,选合适的初值0x,进行迭代:),2,1,0()(1kxxkk实验6实验6x0x1x2x3x4x513.00005.0000-11.0000-107.000023.00003.50003.11113.40543.17793.351033.00003.28573.27493.27493.27493.27491根本不收敛;2虽呈现收敛趋势,但很慢;3收敛很快。2749.32)571(,2)41411(*2,1xx非线性方程的迭代法(例)实验6实验6牛顿切线法)(xf在kx作Taylor展开,去掉2阶及2阶以上项得))(()()(kkkxxxfxfxf)()()(,)()()()(***2****xfxfxxfxfxfx牛顿切线法2阶收敛,0)(*xf0)(),(**xfxf0)(,0)(**xx若x*为单根设0)(kxf,用1kx代替右端的x,由0)(xf得)()(1kkkkxfxfxx,即令)()()(xfxfxxxkxk+1MNxOy=f(x)yf(xk)实验6实验6牛顿割线法用差商11)()(kkkkxxxfxf代替)(kxf)()())((111kkkkkkkxfxfxxxfxxx*为单根时收敛阶数是1.618yOxk+1xy=f(x)PQxk-1xk若x*为重根0)(*x牛顿切线法1阶收敛收敛速度比牛顿切线法稍慢0)()(**xfxf重数越高,收敛越慢实验6实验6MATLAB优化工具箱解非线性方程fzero:单变量方程f(x)=0求根(变号点)最简形式x=fzero(@f,x0)可选输入:“P1,P2,...”是传给f.m的参数(如果需要的话)’opt’是一个结构变量,控制参数(如精度TolX)opt可用optimset设定,不指定或指定为’[]’时将采用缺省值如:opt=optimset(‘TolX’,1e-8)输出:’fv’是函数值;’ef’是程序停止运行的原因(1,0,-1);’out’是一个结构变量,包含:iterations(迭代次数),funcCount(函数调用次数),algorithm(所用算法)一般形式[x,fv,ef,out]=fzero(@f,x0,opt,P1,P2,...)必须输入:’f’为f.m函数名,’x0’是迭代初值(或有根区间)输出:’x’是变号点的近似值(函数不连续时不一定是根)实验6实验6实例1路灯照明0)()(33)('522222522111xshxshPxhxhPxC2065322121shhPP,,,0510152000.020.040.060.080.1C(x)05101520-4-20246x10-3dC(x)322222322111)()(xshhPxhhPxCC(x)有3个驻点:(9,10)内的是最小点,0或20附近的是最大点实验6实验6实例1路灯照明functiony=zhaoming(x)y=2*5*x/(5^2+x^2)^(5/2)-3*6*(20-x)/(6^2+(20-x)^2)^(5/2);x0=[0,10,20];fork=1:3x(k)=fzero(@zhaoming,x0(k));c(k)=2*5/(5^2+x(k)^2)^(3/2)+3*6/(6^2+(20-x(k))^2)^(3/2);end[x;c]x00.028489979.3382991419.9766958120C(x)0.081977160.081981040.018243930.084476550.08447468x=9.3383是C(x)的最小值点,x=19.9767是C(x)的最大值点实验6实验6布置实验目的1)用MATLAB软件掌握求解非线性方程的迭代法和牛顿法,并对结果作初步分析;内容62)通过实例练习用非线性方程求解的实际问题。实验6实验6