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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目录
    8 e4 z2 e2 T+ }0 Q一元函数的导数$ A0 u# n- z3 o
    MATLAB函数语法
    8 C% C0 X3 }& C- d- p9 @% ]) y5 M6 M应用举例
    - _; k5 w$ k' [* G例1 :普通函数求导
    - Y  S/ A& ]% u  R( g1 m例2 :复合泛函求导
    - ^7 x* K3 P- r* f: I例3 :矩阵函数求导! G/ I1 ]) ?; x
    多元函数的偏导数
    # P8 }' E& x0 q+ mMATLAB函数语法
    4 M7 `' M' e+ a; M+ N# |4 z5 D应用举例$ X) |3 g/ M  [3 W7 P2 v, C$ g4 Q
    例1 :求偏导并绘图6 m2 Y& i) a) q9 K' t- n
    例2 :三元函数求偏导! F9 J. d5 l' Q* A+ I0 w1 X# ~

    ) ^  _7 R7 }' ?/ D. E3 D: {9 L一元函数的导数8 u- R# [5 G! g+ F  v1 R
    MATLAB函数语法
    7 ]3 }+ {9 |& o" P* d
    • y = diff(fun, x)        % // 函数fun的一阶导数
    • y = diff(fun, x, n)     % // 函数fun的 n阶导数! P" o3 F" ^1 c( b  K

    ' y( G- v! y8 e- Q
    ' ]" B  d" @$ ~" D3 H( s4 S注:自变量为唯一符号变量时,可以省去 x x x。
    - s- w! P) F$ a6 C3 V; J
      o: J' {. ]; h/ G% Q应用举例
    2 _  M) ~- o4 K- x0 b  [例1 :普通函数求导; b( X/ H4 p& n" ^. {4 r( f1 E4 y
    给定函数
    9 |1 T% m! h3 N/ {4 a $ t# l' @. [  C. A2 y
    ​        
      B2 X" `! a4 ^. {1 h/ O分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。
    & O. P9 V4 R5 x$ w7 z  H( E- J' v) H8 v- [
    • 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); toc3 l3 x; v- V2 \5 n; S; A

    $ f! e! D4 P+ G6 A- H( E+ z6 L, _' H% t% b4 u7 @
    根据结果可知diff函数的效率较高。% ]2 X' s- _) X
    " g; i7 I8 H4 s+ C
    例2 :复合泛函求导" q! D* Y3 ]' j
    已知函数 ,推导其三阶导数公式。
    ( A0 E. A, _6 v8 H; j! Q3 ]$ o
    + [0 H8 ~: ^" D: V分析:该题难点为如何定义 f ( t )
    . u2 @. e' d1 v5 C: _
    6 O; @& {/ U9 I  y
    • syms t f(t)
    • G = simplify(diff(t^2*sin(t)*f,t,3))
      : z# E- T9 s* g2 h: {& ~
    . M5 E2 z( `  N! P3 H  h
    9 K/ u2 _4 o6 V3 ]# H" c& w
    时, F ( t ) 的三阶导数为4 ?! ?0 \% F9 C  A
    / g0 N3 M: h4 ]4 b! {' V3 `+ B  v; [
    • G0 = simplify(subs(G,f,exp(-t)))
    • err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0)
      2 G  p9 L0 O# T' w
    0 @, d2 y1 S" ^. A6 Y  u

    0 P' J. D6 }! w7 u$ f  p8 I7 v$ J例3 :矩阵函数求导2 `& i1 h0 V7 m* u
    3 P! J( L7 M  p6 V8 c3 y
    9 `7 w! o9 [' R4 d
    对每个矩阵元素直接求导- y/ L1 T/ h0 W% N* ?  K+ S

    ! j, Z' R( t/ z; m6 r
    • 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)  y! J- t6 a! u  v# \$ `7 W
    2 `4 e+ |3 X7 r9 V
    ) s- p) ^! [+ p9 f5 V
    多元函数的偏导数
    % M# r' s  p9 f; @MATLAB函数语法( F; F3 \, [/ F
    高阶偏导数
    + I' c8 D. q3 S$ B ; x. M" _' a1 i7 ^8 n/ O7 E% J
    的求法
    ; f+ p. W# l3 z# x% f4 ^/ X! w" v( y) ~# Y" p" h' I: ~5 i1 m
    • y = diff(diff(fun, x, m), y, n)
    • y = diff(diff(fun, y, n), x, m)" x- g; h8 w" `6 [' Z/ ]6 |
    % e1 [6 e; x" p3 Q# H

    ) v4 \  s- f/ h应用举例" V1 |0 J" m$ [) p# d
    例1 :求偏导并绘图# Y7 l; N! Z; Z$ O" o5 `
    求函数 的一阶偏导 ,并绘图。  ]0 ]/ x2 F$ ]% S% w

    & X. k# ^0 @- ?6 R# Z9 O  B
    • 求偏导数
      8 Q: e; U# y: {+ S3 e! Q2 c+ U0 e
    • 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))
      ( t0 ?$ d9 z# A& w. ]

    - _& L! q1 c6 f* I2 M; c+ F
    9 w% v7 T( a: [- T2 X; \
    • 绘制三维曲面% o3 k% s1 E' c8 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])7 Q7 [9 w1 |  o3 f
    4 h' J6 J$ f" ]/ m$ @. `
    6 r9 O8 w: N4 Z' `9 u- W. S

    9 b4 h1 y# p6 F7 J
    3 L) W+ E% T8 z5 K+ q7 o7 B5 n. h
    • 绘制引力线(负梯度)6 u! d4 H& w3 c( ?& q  _: T( a+ ^: e
    • 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)
      " F4 C# s6 A6 u0 e0 ~* c

    - k0 F/ Q/ G5 O
    * y" n# F, M( E! \* S! C' C! }2 g# J2 ?) A
    8 {8 _1 K( e  u; ]; b6 \& M
    例2 :三元函数求偏导
    . l4 w) j$ a. ~3 `求函数 的偏导数 * K5 u  }( d/ M* P
    • 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)
      6 E: r# R3 P5 O7 f; _* H! R
    ) }) o. a4 u" F# E' j. t7 N7 L

    # X6 U7 n6 p0 O8 S# c* H
  • 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-8-11 12:44 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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