找回密码
 注册
关于网站域名变更的通知
查看: 548|回复: 1
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情

    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-1-25 18:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    目录
    & Q+ x2 l! m; L% X一元函数的导数
    , V# v$ `2 S- k* e3 W4 D5 l+ K* NMATLAB函数语法
      S( z3 B* T1 r  X, ]应用举例
    # I8 w  y: g$ H例1 :普通函数求导
    - l: j) |9 t7 j% P7 q! }. j3 X例2 :复合泛函求导9 y# [. s0 D* m
    例3 :矩阵函数求导6 s* R2 v$ H) S6 l/ c* x
    多元函数的偏导数/ L7 E' q9 Q, O1 N$ }
    MATLAB函数语法3 K' ^2 S2 Q; V3 N! S
    应用举例
    2 b' Q# W5 r& [4 j8 T  A例1 :求偏导并绘图
    4 ^: e" g: ^& R( g" U+ p, a例2 :三元函数求偏导
    ! z* l* C' l; n  @1 a6 Z9 I
      c/ W; ?0 D0 `  D3 L3 e! [% q  G一元函数的导数" i9 k3 B' x& k6 B/ D* W& r
    MATLAB函数语法& c! z6 u/ W2 o2 g+ v+ y, o
    • y = diff(fun, x)        % // 函数fun的一阶导数
    • y = diff(fun, x, n)     % // 函数fun的 n阶导数. s% {6 ^: v" b" n; g( D
    6 O4 m/ Z( @$ [( Z5 Y) B  v  ]: F5 V
    , z: H. v+ ]  F% V) o# g
    注:自变量为唯一符号变量时,可以省去 x x x。' ^: \6 }1 I5 C  W6 k8 x; ?
    ! u- `, u# e5 y( ?2 b: H! S
    应用举例2 d2 Z- w3 D3 p' {! @
    例1 :普通函数求导
    & G5 F0 O  a8 o% Z) O  |. r6 A% c给定函数
    4 g, F) `* V. p8 L- U' v $ m  {. r: R8 s
    ​        
    $ Y4 f2 q: \9 }: W- P0 U5 S分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。* o1 A6 G- K3 ~2 [7 P! [: h

    & ?9 z7 q: g+ n4 ]) P
    • 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
      2 ]3 O4 n7 ^% F0 k: V  x, \
    ( O" V: D# n1 T% L

    7 ~% S; N/ X+ g8 F5 W根据结果可知diff函数的效率较高。
    4 e8 p2 |1 q' X6 h$ n
    % N0 w  ~  p  A8 D+ U* n: X/ |9 g+ A8 H例2 :复合泛函求导
    2 s7 W$ ~7 R3 ?0 n5 Q# j, P已知函数 ,推导其三阶导数公式。
    . m* j- Z; j9 y. a, u) X1 k4 n- ~  i4 W) ]0 h% P5 H
    分析:该题难点为如何定义 f ( t )
    - a& S0 z, O. b: o% V# U1 w% [% p* h1 p' k4 C% N9 _# u* M7 r
    • syms t f(t)
    • G = simplify(diff(t^2*sin(t)*f,t,3))
      3 C0 Q, D" X$ S& m

    3 S; _( x% S1 r" N( J* b
    2 m3 E! c0 `5 `: s4 S 时, F ( t ) 的三阶导数为
    % O4 k2 d7 p* ~- c0 w' X# D
    * u/ \3 r" M, C4 f* E/ r
    • G0 = simplify(subs(G,f,exp(-t)))
    • err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0); h; U5 }$ I7 M7 M6 ~+ I, v  z9 C* c

    , D8 X: k8 Q* I! F% {
    2 m4 n% A2 R2 o# ~" _. `, N例3 :矩阵函数求导
    * h. E6 v! i/ |4 F" B % S+ `: [* \/ k7 W' M

    ) [: e; s4 |1 b7 {对每个矩阵元素直接求导
    % d' h9 P) ^, p8 v- l: a
    * _- _  U3 \& i0 ?, l
    • 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)5 n9 C0 l) ]4 l

    4 ]8 ?1 S) `$ K/ F- }: a  t* t* h  _# H0 J( M
    多元函数的偏导数
    5 N% D8 k& Q* _+ ~8 MMATLAB函数语法
    3 J9 |  i+ j7 {7 ?, H# R高阶偏导数$ V/ u& V* t6 O, D5 q7 B, _
      Q: Y2 w, X+ ]1 ~0 H
    的求法
    + U; I- n# @( U* i( v0 w" Y( K, ]
    9 [. B) A0 p: H7 [# }& [
    • y = diff(diff(fun, x, m), y, n)
    • y = diff(diff(fun, y, n), x, m)
      & w: X0 |/ l4 ~6 w! f
    . c6 Z% H: h3 M7 y* c7 A

    : M3 B% F7 m+ ], h& z. c7 A应用举例! e& ]0 g8 L$ _8 V8 P
    例1 :求偏导并绘图
    # o) [$ ]3 o7 {* \; B/ ~) E& b求函数 的一阶偏导 ,并绘图。
    2 r( v: ~4 Y& h6 y4 x, D0 K& Z4 k! |7 D0 I
    • 求偏导数
      . e. ~# w" o- W
    • 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))
      7 k7 g5 v# {6 S8 @" T4 h
    6 j' V2 B2 u+ B8 o3 B  d
    - c) t4 Y* N7 y! F9 M! _
    • 绘制三维曲面1 N" P( m; B4 b' a7 Y0 m: j( I* l
    • [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])4 Q6 i- z5 p! @; e5 s, C

    & N! w% p0 m* f  J1 Z: P& e/ O 9 C# O* B( T  t/ v' |% q

    + s% S" A8 V4 Y' P
    " U2 \' O' M4 R5 a% e( @
    • 绘制引力线(负梯度)- r3 T: v# {- l4 r
    • 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 g+ {- L3 i- R1 I; T. x
    . h( F4 n' k" a3 N$ ?" j8 R
    4 R1 B7 I( j( q) @
    1 e" D8 H+ K5 V2 G
    ) H/ }3 {3 ]/ [2 [: H8 p; D( Z6 _: l
    例2 :三元函数求偏导
    , n1 r) @% R2 h求函数 的偏导数
    , Y( J2 Q" ?) _( z, e  w" ]* ^
    • 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)
      / Y' T% @% h5 y% G# \4 Q" w0 y
    , ?* w, Q: J; z9 a% d1 o

    # @2 n# U+ b. }/ G1 Y4 {
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-1-25 18:45 | 只看该作者
    matlab求解普通函数的导数问题(diff函数的用法)
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 13:15 , Processed in 0.156250 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表