预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

非线性方程和常微分方程的解法非线性方程和常微分方程的解法实验8非线性方程和常微分方程的解法一、实验目的学会用MATLAB软件求解非线性方程和常微分方程.二、实验内容与要求1.非线性方程的整值解(1)最小二乘法格式:fsolve(’fun’,x0)%求方程fun=0在估计值x附近的近似解.[例1.72]求方程xe0的解.fc=inline(‘x-exp(-x)’);xl=fsolve(fc,0)xl=0.5671问题1.28:求解方程5xsinx-e0,观察知有多解,如何求之?先用命令fplot(’5*x^2*sin(x)-exp(-x),0]’,[0,10])作图1.13,注意5*x^2*sin(x)-exp(-x),0]中的“[,0]”是作y=0直线,即x轴.方程在[0,10]区间从图中可看出有4个解,分别在0,3,6,9附近,所以用命令:fun=inline(’5*x^2*sin(x)-exp(-x)’);fsolve(fun,[0,3,6,9],le-6)得出结果:ans=0.59183.14076.28329.4248例1.73求解方程组x-0.7sinx-0.2cosy=02-x-xy0.7cosx0.2siny0先编制函数文件fu.m:functiony=fu(x)y(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));y(2)=x(1)-0.7*cos(x(1))+0.2*sin(x(2));y=[y(1),y(2)];在命令窗口调用fu运算:x1=fsolve(‘fu’,[0.5,0.5])x1=0.52650.5079(2)零点法格式:fzero('fun',x0)%求函数fun在x0附近的零点.说明:估计值x0若为标量时,则在x0附近查找零点,x0=[x1,x2]向量时,则首先要求函数值fun(x1)fun(x2)0,然后将严格在[x1,x2]区间内零点,若找不到,系统将给出提示.非线性方程和常微分方程的解法例1.74求函数f(x)sinx2/xxex4的零点.fn=inline('sin(x^2)/x+x*exp(x)-4');x=fzero(fn,[1,2])%这里的fn不要加单引号x=1.0748注意:方程解的估计值可用fplot作图看出;用function建立函数文件fn,求解调用时fn两边要加单引号,而用inline时fn两边不要加单引号;这两种方法也可解线性方程组.⒉代数方程的符号解格式:gsolve(eq)%求解方程eq0,输入参量eq可是符号表达式或字符表达式.gsolve(eq,var)%对eq中指定的变量var求解方程eq(var)0.gsolve(eq1,eq2,,eqn)%求解方程组eq10,eq20,eqn0.gsolve(eq1,eq2,eqn,var1,var2,,varn)%对方程组eq1,eq2,eqn中指定的n个变量加var1,var2,varn求解例1.75solve('a*x^2+b*x+c')solve('a*x^2+b*x+c','b')[x,y]=solve('x+y=1','x-11*y=5')[a,u,v]=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')计算结果为:ans=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]ans=-(a*x^2+c)/xx=4/3y=-1/3a=[2][2][3][3]u=[1/3+1/3*i*2^(1/2)][1/3-1/3*i*2^(1/2)][1/4+1/4*i*3^(1/2)]非线性方程和常微分方程的解法[1/4-1/4*i*3^(1/2)]v=[-2/3+1/3*i*2^(1/2)][-2/3-1/3*i*2^(1/2)][-3/4+1/4*i*3^(1/2)][-3/4-1/4*i*3^(1/2)]注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解.问题1.29:用符号法求解问题1.28中的方程,结果不对,所以要验根,多用几种方法相互验证,用符号法解方程3xe0,解的表达式不易懂,怎么办?x=solve('3*x^2-exp(x)')x=[-2*lamber