matlab求解普通函数的导数问题(diff函数的用法)

一元函数的导数

MATLAB函数语法
y = diff(fun, x)        % // 函数fun的一阶导数
y = diff(fun, x, n)     % // 函数fun的 n阶导数

注:自变量为唯一符号变量时,可以省去 x x x

应用举例
例1 :普通函数求导

给定函数 f ( x ) = s i n x x 2 + 4 x + 3 f(x)=\frac{sin x}{x^2+4x+3} f(x)=x2+4x+3sinx分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。

syms x; f=sin(x)/(x^2+4*x+3); f1=diff(f)
ezplot(f,[0,5]), hold on; ezplot(f1,[0,5])
f4 = diff(f,x,4)
f41 = collect(simplify(f4),sin(x))
f42 = collect(simplify(f4),cos(x))
tic, diff(f,x,50); toc

根据结果可知diff函数的效率较高。

例2 :复合泛函求导

已知函数 F ( t ) = t 2 ∗ s i n t ∗ f ( t ) F(t)=t^2*sint*f(t) F(t)=t2sintf(t),推导其三阶导数公式。

分析:该题难点为如何定义 f ( t ) f(t) f(t)

syms t f(t)
G = simplify(diff(t^2*sin(t)*f,t,3))

f ( t ) = e − t f(t)=e^{-t} f(t)=et时, F ( t ) F(t) F(t)的三阶导数为

G0 = simplify(subs(G,f,exp(-t)))
err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0)
例3 :矩阵函数求导

矩阵函数
对每个矩阵元素直接求导

syms x; 
H=[4*sin(5*x), exp(-4*x^2); 3*x^2+4*x+1, sqrt(4*x^2+2)], 
H1=diff(H,x,3)

多元函数的偏导数

MATLAB函数语法

高阶偏导数偏导数的求法

y = diff(diff(fun, x, m), y, n)       
y = diff(diff(fun, y, n), x, m)   
应用举例
例1 :求偏导并绘图

求函数 z = f ( x , y ) = ( x 2 − 2 x ) e − x 2 − y 2 − x y z=f(x,y)=(x^2-2x)e^{-x^2-y^2-xy} z=f(x,y)=(x22x)ex2y2xy的一阶偏导数 ∂ z / ∂ x , ∂ z / ∂ y \partial z/\partial x, \partial z/\partial y z/x,z/y,并绘图。

  • 求偏导数
syms x y
z  = (x^2-2*x)*exp(-x^2-y^2-x*y);
zx = simplify(diff(z,x))
zy = simplify(diff(z,y))
  • 绘制三维曲面
[x0,y0] = meshgrid(-3:.2:2,-2:.2:2); 
z0 = double(subs(z,{x,y},{x0,y0}));
surf(x0,y0,z0), zlim([-0.7 1.5]) 

三维曲面

  • 绘制引力线(负梯度)
contour(x0,y0,z0,30), hold on
zx0 = subs(zx,{x,y},{x0,y0}); 
zy0 = subs(zy,{x,y},{x0,y0}); 
quiver(x0,y0,-zx0,-zy0)

引力线(负梯度)

例2 :三元函数求偏导

求函数 f ( x , y , z ) = s i n ( x 2 y ) e − x 2 y − z 2 f(x,y,z)=sin(x^2y)e^{-x^2y-z^2} f(x,y,z)=sin(x2y)ex2yz2的偏导数 ∂ 4 f ( x , y , z ) / ( ∂ x 2 ∂ y ∂ z ) \partial^4 f(x,y,z)/(\partial x^2 \partial y \partial z ) 4f(x,y,z)/(x2yz)

syms x y z
f  = sin(x^2*y)*exp(-x^2*y-z^2); 
df = diff(diff(diff(f,x,2),y),z); 
df = simplify(df)
  • 32
    点赞
  • 216
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43964993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值