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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目录& u- ~! N7 ?0 x8 a6 @, M/ s3 g4 H
    一元函数的导数& C# N! u/ \3 x' a) S+ x$ z
    MATLAB函数语法) M: T2 H( L9 |1 l: @6 ^% R
    应用举例
    % ^6 T2 M9 G& T- h! j- F例1 :普通函数求导$ u2 f* K9 m( \, N/ |
    例2 :复合泛函求导
    - V4 _7 b# S/ v' x7 `" \# X例3 :矩阵函数求导1 h3 y  j, h& B. |3 F9 U+ l; i( V
    多元函数的偏导数, I! X" E' O! G
    MATLAB函数语法
    * F9 i) \8 T) G; m# S/ ^/ r' l* g应用举例
    ' G" l) Z, _' T3 d, U* y例1 :求偏导并绘图" }- u/ _4 T) b3 l1 J% \
    例2 :三元函数求偏导
    2 d) [6 C% S9 Y" c& P! e3 @" z
    3 v& ^# _% s5 q( m一元函数的导数7 V* i5 J6 O$ W! c
    MATLAB函数语法
    5 k! V1 z7 E# c9 g/ ~/ i. W  D8 S
    • y = diff(fun, x)        % // 函数fun的一阶导数
    • y = diff(fun, x, n)     % // 函数fun的 n阶导数
      # C) u5 V, B% c; ^

    % |+ |& [+ ^3 @; j$ F0 w
    / @3 |2 P  {; r7 e% F1 M7 R注:自变量为唯一符号变量时,可以省去 x x x。, J  W4 I1 V+ m+ e
    + V  e5 d5 D, Q( T7 F1 N
    应用举例
    $ J# h7 i4 ?4 D8 W例1 :普通函数求导
    9 R$ z( @! o8 c3 B给定函数
    6 j$ G& F% |# h. v4 |, u. Z2 [2 b
    ) t3 A9 |" L" O/ ?5 Z/ }& T1 E  T( g​        & L8 _/ {: i+ ]4 v6 ]7 m
    分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。+ Z: j  S3 T1 R2 i
    8 Q& |5 x; v7 c
    • 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 ~% o+ ?7 [2 ~! Y  j' g. A

      L' h  e# Z7 `. a0 G! K# i) d( \8 U5 r! V. ?
    根据结果可知diff函数的效率较高。
    8 w6 a4 f/ l7 i/ g3 J$ f: R8 M5 d3 M1 Z: U5 n
    例2 :复合泛函求导
    4 w/ s+ c$ Y9 Y  a9 d已知函数 ,推导其三阶导数公式。
    , X9 x) A9 \' i9 B# Y: P% [" i3 x+ E* `1 \* \8 Q4 t8 Q3 I3 R! N
    分析:该题难点为如何定义 f ( t )/ T* L( {7 Q# m

    ( e7 m) d/ `9 B: H
    • syms t f(t)
    • G = simplify(diff(t^2*sin(t)*f,t,3))
      * c1 H4 R5 `3 J. n
    ( x/ I9 ?5 B# i8 K( @6 c# d9 b
    2 P% ]: b( `+ e4 X8 s" G
    时, F ( t ) 的三阶导数为2 S( x, r7 T) Y, x1 f

    ) Y; _4 M0 y! z5 Y
    • G0 = simplify(subs(G,f,exp(-t)))
    • err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0)' ]2 L2 b3 t+ R' K+ q7 r
    : _" u9 [0 _- N+ B- O0 u0 r" u, b. ?
    9 a4 y9 E! w% B- v
    例3 :矩阵函数求导/ u: U  ]+ e" b  O* f/ K

    9 h8 h# |5 s9 C7 \+ r: c, c# x8 q
    + {; I: c4 _2 Z: h( H6 ]- ~$ a! A& q4 E对每个矩阵元素直接求导
    3 n* A: F" Y0 x" E. K$ _7 m
    * W7 m, @2 i( f/ ~/ s' u
    • 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)
      + j% y( {4 x$ s
    ' h" g" w2 f7 V7 b

      i3 o: m2 j! r5 i* E2 q. V多元函数的偏导数
    1 u2 d& s6 ?5 B+ T1 _+ nMATLAB函数语法
    - ^  v2 U- |: x0 P高阶偏导数
    7 m. U5 l# n9 a9 |8 I & @3 g: ]6 [+ Y4 q4 q
    的求法
    ; Y& B, s9 N$ ^: D7 L
    ; G- }: H! T) t5 h9 K, {5 G5 ^) z
    • y = diff(diff(fun, x, m), y, n)
    • y = diff(diff(fun, y, n), x, m)
      8 z4 \( A! j" [# k- _
    + w2 A7 J. ]8 ~
    3 a0 }( M& I) U- W
    应用举例
    8 e4 O7 Q: W2 f3 J0 e+ X( i例1 :求偏导并绘图
    , i7 \$ a! Q1 g/ I求函数 的一阶偏导 ,并绘图。
    % N4 V+ D) d- ?. s* x: Z- F8 S9 O3 j7 V6 R5 k; ^
    • 求偏导数3 j, \6 M. v9 M
    • 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))
      - X" c* z# q. W: u' E4 M; K
    1 s+ N3 O# n. H& W% a

    ) c5 B# r! y4 ?) z* {: `
    • 绘制三维曲面! ^4 T+ {: }: N3 z5 C- }
    • [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])
      * h" {2 j+ L5 \/ Y8 c8 Z) j
    ' F8 Z; u  U% {7 N( F* }

    5 ^8 O/ a$ k- |9 U& \4 y
    2 t) s" f" `! s% ]: Y) B! U$ d% t- i  g! c5 ?1 Y: Z5 p
    • 绘制引力线(负梯度): Q  k3 V% J6 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)0 R" c7 o3 t2 G# _7 r$ }8 j  a; d9 g
    4 `/ M8 m" n; c# N/ g* a
    - I1 U. t+ J9 H9 z
    $ u! s6 W1 f- ]% B6 L1 b

    & l3 R" _8 o2 m6 @4 C, i8 \例2 :三元函数求偏导
    * X! k; O2 L& c  h+ p求函数 的偏导数
    6 Z: @7 p. {+ L% d' u) C' y2 x
    • 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)
      9 n- q9 g3 `1 B7 Y" G

    % b# r/ ?2 N6 j$ J7 C/ G! E, O; Q
    * R+ r+ @6 ]( O; {/ D$ Q- ^
  • 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-31 14:57 , Processed in 0.187500 second(s), 27 queries , Gzip On.

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

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

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