F=[cos(a*x) sin((a+b)2*x)] [-sin(b*x) en]; 用 fzero 命令求解函数 x ) ? x 4 ? 4 x ? 5 的零点 f(( 1)建立函数 f(x)的 M 文件。 function y=fun1(x) y=x.^4-4*x-5;
( 2)建立水平横轴的 M 文件。 function y=fun2(x) y=0;
( 3)用作图法估计函数零点位置。 >> fplot('fun1',[-5,5],'r') >> hold on
>> fplot('fun2',[-5,5],'r')
( 4)用 zoom 和 ginput 命令获得零点的初始近似值
在程序中输入下列命令,可得到函数的局部放大图及鼠标操作线。 zoom on %局部放大命令 [tt]=ginput(1)
[yy]=ginput(1) %用鼠标获取 2 个零点猜测值 zoom off %恢复原来图形大小
显示所得零点初始猜测值,结果为: tt =
-0.9838 0.0001 yy =
1.8762 0.0091
(5)用函数 fzero 命令求函数的精确零点
[x,fval,exitflag]=fzero(’fun1’,tt(1),[]) %靠近 tt(1)点处的精确零点
[x,fval,exitflag]=fzero(’fun1’,yy(1),[]) %靠近 yy(1)点处的精确零点 结果为: Zero found near tt. x = -1
fval = 0
exitflag = 1
求方程组 ?? x1 ? 0 .7 sin x 1 ? 0 .2 cos x 2 ? 0
?x2?0.7cosx1?0.2sinx2?0首先编制函数文件fc.m function y=fc(x)
y(1)=x(1)-0.7*sin(x(1))-0.2*sin(x(2)); y(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2)); y=[y(1),y(2)];
然后用fsolve求解
>>[x,fval,exitflag,output,jacob]=fsolve(‘fc’, [1.,1.],[]) %[1.,1.]为初值 x =
0.3367 0.5553 fval =
1.0e-008 *
0.2029 0.5242 exitflag = 1 output =
firstorderopt: 5.7877e-009 iterations: 5 funcCount: 16 cgiterations: 4
algorithm: [1x43 char] jacob =
(1,1) 0.3393 (2,1) 0.2313 (1,2) -0.1700 (2,2) 1.1700
求方程组 ?? sin x ? y ? 0 的解。
?x?6y?0初始零点猜测值为:[x0,y0]=[0.0, -0.0058] 的根。
用fsolve 函数命令求精确解
fun=’[sin(x(1))+x(2),x(1)+6*x(2)]’; %用字符串表达式形式命令。
注意自变量必须写成x(1)和 x(2) fun 函数也可用 M 函数文件的形式
function yy=fun(x) yy(1)=sin(x(1))+x(2); yy(2)=x(1)+6*x(2);
[XX,YY]=fsolve(fun,[x0(1),y0(1)]) %解此非线性方程组 XX =
1.0e-016 *
-0.5464 0.1214 YY =
1.0e-016 *
-0.4250 0.1821
求非线性方程组 解:
[x,y,z]=solve('x^2+sqrt(2)*x+2=0','x+3*z=4','y*z=-1','x','y','z') x =
[ (-1/2+1/2*i*3^(1/2))*2^(1/2)] [ (-1/2-1/2*i*3^(1/2))*2^(1/2)] y=
[-51/73+3/73*i*3^(1/2)-27/146*(-1/2+1/2*i*3^(1/2))*2^(1/2)-3/146*2^(1/2)]
?x2?2x?2?0? ? x ? 3 z ? 4 ?yz??1? 的解 。
[ -51/73-3/73*i*3^(1/2)-27/146*(-1/2-1/2*i*3^(1/2))*2^(1/2)-3/146*2^(1/2)] z =
[ -1/3*(-1/2+1/2*i*3^(1/2))*2^(1/2)+4/3] [ -1/3*(-1/2-1/2*i*3^(1/2))*2^(1/2)+4/3] 求 d fdt
? f ? g
, dgd t ? ? f ? g , f(0)=1, 的解。
S = dsolve(’Df = f + g’,’Dg = -f + g’,’f(0) = 1’,’g(0) = 2’) S = f: [1x1 sym] g: [1x1 sym] S.f
ans = exp(t)*(cos(t)+2*sin(t)) S.g
ans =
exp(t)*(-sin(t)+2*cos(t))
上机 练习(6)
1)求解下列微分方程
a. y’=(x+y)(x-y)
b. xy’=ytg(y/x),y(10)=1
g(0)=2