量线段。
plot(x(1),y(i+1),'r.','Markersize',18);
subplot(2,1,1),plot([x(i+1) x(i+1)],[ymin ymax]);
h=plot([x(1) x(1)],[s(i),s(i+1)]); %画相应的辅助线
段。
set(h,'linestyle','-','linewidth',5,'color','red'); plot(x(1),y(i+1),'r.','Markersize',18); plot([x(1) x(i+1)],[s(i+1) y(i+1)],'r--')
pause 大时应该去掉。
end 】
myfun2_2.m (选择其它的函数进行实验,可修改此程序) 【 function y=myfun2_2(x)
sin(x); %y=sin(x)./(x); 】
4.3 实验与观察(Ⅱ): Matlab符号微积分简介
4.3.1 创建符号变量 4.3.2 求符号极限limit指令
◆观察 :求下列问题的极限: 【 syms x a
I1=limit('(sin(x)-sin(3*x))/sin(x)',x,0) I2=limit('(tan(x)-tan(a))/(x-a)',x,a)
I3=limit('(3*x-5)/(x^3*sin(1/x^2))',x,inf) 】
4.3.3 求导指令diff
1.符号求导指令diff
◆
21
%暂停,n
【 syms x y
f=sym('exp(-2*x)*cos(3*x^(1/2))') diff(f,x)
g=sym('g(x,y)') %建立抽象函数。 f=sym('f(x,y,g(x,y))') %建立复合抽象函数。 diff(f,x)
diff(f,x,2) 】
2.数值求导指令diff
【 x=linspace(0,2*pi,50);y=sin(x);dydx=diff(y)./diff(x);
plot(x(1:49),dydx),grid 】
4.3.4 求符号积分int
【 syms x y z
I1=int(sin(x*y+z),z)
I2=int(1/(3+2*x+x^2),x,0,1)
I3=int(1/(3+2*x+x^2),x,-inf,inf) 】
4.3.5 化简、提取和代入
【 syms x a
t=(a+x)^6-(a-x)^6 t_expand=expand(t) t_factor=factor(t_expand)
t_simplify=simplify(t) 】 ◆ 观察: 将a?a0,b?1,c?4,x?x0代入表达式f?ab? 【 syms a b c x y a0 y0
f=a*b+c/x*y;
a='a0';b=1;c=4;x='x0';y=5; t= subs(f) 】 【 syms a b c x y a0 y0
f=a*b+c/x*y;
subs(f,{a,b,c,x,y},{'a0',1,4,'x0',5}) 】
22
c中求值。 xy
4.4应用、思考和练习
4.4.1 追击问题
1.追击问题的数值模拟 2. 追踪雷达失效的情形
3. 追线问题的解析解
【 syms y a v s0
x=sym('x(y)'); t=sym('t(y)'); %定义函数关
系。
f_left=-y*diff(x,y); f_right=s0+a*t-x; %方程左、右边表达式。 r_left=diff(f_left,y), 【 syms y d r
xs=simplify(dsolve('D2x=-r*sqrt(1+Dx^2)/y','x(20)=0','Dx(20)=0','y')) 】 【 r=0.4; y=20:-0.01:0;
x=1/2*(y.^(1+r)*r*20^(-r)+y.^(1-r)*r*20^r-40*r-y.^(1+r)*20^(-r)+y.^(1-r)*20^r)/(-1+r^2); shg,comet(x,y) 】
r_right=diff(f_right,y)
%
求
导 】
4.4.2 应用问题
1.枪支的设计
【clear,clf
x=[0.0127,0.0254,0.0381,0.0508,0.0635,0.0762,0.0889,0.1016,0.1143,0.1270,0.1397,0.1524,0.3175,0.3302,0.3429,0.3556,0.3683,0.3810,0.3937,0.4064,0.4191,0.4318,0.4445,0.4572,0.1651,0.1778,0.1905,0.2032,0.2159,0.2286,0.2413,0.2540,0.2667,0.2794,0.2921,0.3048,0.4699,0.4826,0.4953,0.5080,0
23
.5207,0.5334,0.5461,0.5588,0.5715,0.5842,0.5969,0.6096];
p=[0.10135,0.20064,0.27303,0.31095,0.33094,0.33991,0.34474,0.33577,0.31508,0.29578,0.27717,0.26131,0.11859,0.11238,0.10687,0.10204,0.09215,0.09308,0.08894,0.08480,0.08067,0.07722,0.07377,0.07032,0.24545,0.23097,0.21718,0.20339,0.19167,0.17995,0.16823,0.15789,0.14824,0.13927,0.13238,0.12548,0.06757,0.06481,0.06205,0.05929,0.05654,0.05378,0.05102,0.04826,0.04550,0.04274,0.04067,0.03861]; [xx,k]=sort(x);
pp=p(k);plot([0,xx],[0,pp],'-'),grid on, xlabel('枪 管 长 度 x'),
ylabel('压 强 p') 】
2.天然气井的开采量
实验5.用导数作定性分析
5.1知识要点:函数作图 —用导数定性描述函数
【 clf,x=linspace(-8,8,30);f=(x-3).^2./(4*(x-1)); plot(x,f) 】 【 fplot('(x-3)^2/(4*(x-1))',[-8,8])) 】
【 clf,x=sym('x'); f=(x-3)^2/(4*(x-1)); ezplot(f,[-8,8]) ,
title('(x-3)^2/(4*(x-1))','fontsize',11) ,
xlabel('x','fontsize',11) 】 ◆按函数绘图步骤绘制完整的函数图,直接用Matlab符号演算完成必须的计算。 【 df_dx=diff('(x-3)^2/(4*(x-1))') 】 【 sym('x');factor(df_dx) 】
【 f=inline('(x-3)^2/(4*(x-1))');X1=[-1,f(-1)],X2=[3,f(3)] 】
求符号二阶导数dy/dx:
2
2
【 df2_dx2=diff(‘(x-3)^2/(4*(x-1))’,2) 】
24
二阶导数的因式分解:
【 sym('x'); factor(df2_dx2) 】 【 syms x
f_left=limit('(x-3)^2/(4*(x-1))',x,1,'left')
f_right=limit('(x-3)^2/(4*(x-1))',x,1,'right') 】【 syms x
f_minus_inf=limit('(x-3)^2/(4*(x-1))',x,-inf,'right')
f_plus_inf=limit('(x-3)^2/(4*(x-1))',x,inf,'left') ③有无斜渐近线?
【 syms x, a=limit('((x-3)^2/(4*(x-1)))/x',x,inf) 【 b=limit('(x-3)^2/(4*(x-1))-(1/4)*x',x,inf,'left') 5.2实验与观察:微分方程的定性解图示
5.2.1人口增长的预测
1.Malthus模型 2.Logistic模型
【 N=dsolve('DN=r*(1-N/Nm)*N','N(t0)=N0') 3.微分方程解的定性分析
观察1:
◆(1)求N = N (t)的驻点和拐点。 【 syms t
dN2_dt2=diff('r*(1-N(t)/Nm)*N(t)',t) dN2_dt2=factor(dN2_dt2) 】
4.用导数作稳定性分析
25
】 】
】
, 】