通过调用diff命令,我们可以使用MATLAB计算符号导数,只需要把要求的求导函diff命令

例一:计算

syms x t
f=x.^3+x.^2
g=cos(10.*t)
diff(f)
diff(g)
输出结果:

例二:我们要得到f更高阶的导数,我们使用diff(f,n),让我们求得 2te.^-5t的二阶导数

代码:

syms t
f=2.*t.*exp(-5.*t)
diff(f,2)
输出结果:

 1.2求函数在某一区间的最值

例一:求函数f(x)=x.^4+3x.^3+7x.^2+12在区间[0,5]的最值

首先我们输入函数并绘制该函数在给定区间内的图像

syms x
f = x.^4 + 5*x.^3 + 7*x.^2 + 12

ezplot(f,[0,5])
输出结果:

再求出最大值和最小值,我们求导数并找出等于0的点

g=diff(f)

 最后调用pretty命令

pretty(g)

 1.3导数有两个根,但实际上可以看到的或许只有一个临界点,我们可以从图像中看到最大值出现在终点我们可以利用subs命令带入符号函数的某一个值,如果设置x=c,那么我们可以调用subs(f,c)

例一:
f = x.^4 + 5*x.^3 + 7*x.^2 + 12下面我们求x=0,1,2时f的值


syms x
f = x.^4 + 5*x.^3 + 7*x.^2 + 12
ezplot(f,[0,5])
subs(f,0),subs(f,1),subs(f,2)

输出结果:

 1.4在MATLAB中可以使用dsolve命令求解符号微分方程,使用dsolve求解某个方程的语法是dsolve('equ'),其中equ用来表示方程的字符串。这个命令会返回一个任意常量符号解,这些常量表示为C1,C2.我们确定方程的指定条件和边界条件.

当使用dsolve是导数D表示,可以表示为:

 我们写成:'Df=-2.*f+cos(t)'

1.5常微分方程求解

例一:

 》s=dsolve('Dy=t+3','y(0)=7')

得出结果

 接着调用ezplot来产生图像

 例二:

 s=dsolve('Dy=-y/sqrt(1-t^2)')

 s=dsolve('Dy=-y/sqrt(1-t^2)')
for i=0:10:50
    f=subs(s,'C1',i)
    ezplot(f,[-1,1])
    hold on
    0,10*exp(-asin(t)),20*exp(-asin(t)),30*exp(-asin(t))
    hold off
end

输出结果:

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐