matlab第六课.docx
- 文档编号:18247883
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:10
- 大小:20.93KB
matlab第六课.docx
《matlab第六课.docx》由会员分享,可在线阅读,更多相关《matlab第六课.docx(10页珍藏版)》请在冰点文库上搜索。
matlab第六课
Matlab_6符号运算
微积分
变量精确计算
因式分解和合并
代数方程、微分方程
积分变换、特殊函数
MuPad
符号变量说明---sym/syms
a=sym('a')
b=sym
(2)
c=sym(pi)
sin(a)
sin(b),sin
(2)
double(sin(b))
sin(c),sin(pi)
symsxyz%同时定义多个符号变量
x=sym(10)
y=10
whos
%符号函数
symsxy
f=sin(x)
g=x*2+f^2+y
图形功能---ezplot,ezsurf…
symsxy
y=sin(x)
ezplot(y)
ezplot(@sin)
symsxyz
z=x*exp(-x^2-y^2)
ezsurf(z)
h=@(x,y)x.*exp(-x.^2-y.^2);
ezsurf(h)
微积分运算
%求导数
symsx
f=sin(2*x)
diff(f)
%高阶导数
g=exp(x)*cos(x)
diff(g),diff(g,2)
diff(diff(g))
%常数的导数
c=sym('5')
diff(c)
diff(5)
%偏导数
symsst
f=sin(s*t)
diff(f,t)
diff(f,s)
%求极限
symsxa
lime(sin(a*x)/a,a,0)
limit(x/abs(x),x,0,'left')%'right',none
%级数求和
symsxk
s1=symsum(1/k^2,1,inf)
s2=symsum(x^k,k,0,inf)
%Taylor展开
symsx
f=1/(5+4*cos(x));
T=taylor(f,8)
pretty(T)
符号积分---int
symsxn
int(x^n,x)
int(sin(x),x,0,pi/2)
%
symsax
f=exp(-a*x^2);
int(f,x,-inf,inf)
%较复杂的积分,可能得不到结果!
%例:
计算定积分?
%精确解:
π|cosβ|
symsbt
int(1/(1+tan(b)^2*sin(t)^2),t,0,pi)
%可以计算一个简单的特例
b=sym(pi/4);
%result=pi*cos(pi/4)
int(1/(1+tan(b)^2*sin(t)^2),t,0,pi)
%变量精确计算(Variable-PrecisionArithmetic)
%digits,vpa
formatlong
1/2+1/3
sym(1/2)+1/3
digits
vpa(1/2+1/3)
vpa(pi,40)
正弦/余弦积分函数---sinint/cosint
%sinint(x)函数sin(x)/x在[0,x]区间的积分
%cosint(x)……
symsx
diff(sinint(x))
diff(cosint(x))
ezplot(sinint(x))
ezplot(sinint(x),[-50,50])
ezplot(cosint(x))
%…
int(sin(1/x))
int(cos(1/x))
int(sin(x)*log(x))
int(cos(x)*log(x))
%例:
计算sin(1/x)在[0,1]上的积分值
quadgk(@(x)sin(1./x),0,1)%[1,inf]数值广义积分
val=int(sin(1/x),0,1)
double(val)
代数方程---solve
solve(x^2+1)
solve(a*x^2+b*x+c)
%%方程组
symsauv;
s=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')
[s_a,s_u,s_v]=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')
sol=[s_a,s_u,s_v]
%%
s=solve('cos(2*x)+sin(x)=1')
symsx
ezplot(cos(2*x)+sin(x)-1,[-1010])
%%求解方程sin(x)=x2-1
symsx
ezplot(sin(x));
holdon;
ezplot(x^2-1)
holdoff
solve('sin(x)=x^2-1')
例:
函数的特性分析
%%定义函数
symsx
num=3*x^2+6*x-1;%分子
denum=x^2+x-3;%分母
f=num/denum
%%绘制函数图形
ezplot(f)
title('ExampleofSymbolicMath')
%%描绘渐近线
limit(f,inf)%水平渐近线,-inf
roots=solve(denum)%垂直渐近线(分母为零)
holdon
plot([-2*pi2*pi],[3,3],'g')
plot(double(roots
(1))*[1,1],[-5,10],'r')
plot(double(roots
(2))*[1,1],[-5,10],'r')
holdoff
%%描绘极值点
f1=diff(f)
f1=simplify(f1)
pretty(f1)
crit_pts=solve(f1)%计算极值点
holdon
plot(double(crit_pts),double(subs(f,crit_pts)),'ro')
text(-4.5,3.5,'极小值')%Localminimum
text(-2,2,'极大值')%Localmaximum
holdoff
%%描绘拐点
f2=diff(f1);
inflec_pt=solve(f2);
double(inflec_pt)
inflec_pt=inflec_pt
(1)
pretty(simplify(inflec_pt))
holdon
plot(double(inflec_pt),double(subs(f,inflec_pt)),'bs')
text(-5.5,2,'拐点')%Inflectionpoint
holdoff
常微分方程---dsolve
dsolve('Dy=t*y')
y=dsolve('Dy=t*y','y(0)=2')%定解条件
%多解问题
x=dsolve('(Dx+x)^2=1','x(0)=0')
%高阶ODE(缺省自变量为t)
y=dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x')
simplify(y)
%ODE方程组
s=dsolve('Df=3*f+4*g','Dg=-4*f+3*g')
[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1')
%BVP问题
dsolve('D2y-3*Dy+2*y=0','y(0)=0','y
(1)=exp
(2)-exp
(1)')
sol=dsolve('D2y-2=0','y(0)=0','Dy
(1)=1-y
(1)','x')
simplify(sol)
simple(sol)
%%目前,符号运算只能处理较简单的问题
%x例:
求解微分方程
symsxy
dsolve('D2y=abs(y)')
dsolve('D2y=abs(y)','y(0)=0','y(4)=-2')
%x例:
求解微分方程
%Equ:
y''+2/x*y'+y^5=0
%BC:
y'(0)=0,y
(1)=sqrt(3)/2
%精确解:
y=1/sqrt(1+x.^2/3)
dsolve('D2y-2/t*Dy+y^5=0','Dy(0)=0','y
(1)=sqrt(3)/2')
%验证精确解
symsty
y=1/sqrt(1+t^2/3);
result=diff(y,2)+2/t*diff(y)+y^5
simplify(result)
MuPad---符号运算驱动程序(engine)
MuPad和Matlab的差异:
SymbolicMathToolbox
->User'sGuide
->MuPAD
->IntegrationofMuPADandMATLAB
docmupad%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 第六