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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目录" T8 c7 f& f9 K+ m3 E: ~1 I
    一元函数的导数# w# L! L7 u, A) Y
    MATLAB函数语法- o& O4 N1 k& G: `7 o
    应用举例
    + p1 p, ]! Y4 j) d( U% a例1 :普通函数求导
    * z, f3 M4 j6 b3 k# i) ?5 [例2 :复合泛函求导
    ! U' v. e' k3 c* {9 k5 V例3 :矩阵函数求导
    6 }4 `! d5 h7 ~$ @3 t$ {. ^多元函数的偏导数
    ! c5 f7 f; [; w9 K( W: rMATLAB函数语法# I2 P0 O( U/ Q
    应用举例4 z: r6 _+ I' Y' s" W* e$ t. @4 q
    例1 :求偏导并绘图4 D  ^1 D( F- N/ e, f% k/ ?
    例2 :三元函数求偏导9 ~$ O4 b- O6 x' K/ F; x5 a) e5 b( w

    ) a9 j* o% s0 T8 ?) c8 G一元函数的导数
    6 b& o; ~, g; I/ M' c) u6 o# ]MATLAB函数语法# v' t7 Q% D1 {" `; `, }
    • y = diff(fun, x)        % // 函数fun的一阶导数
    • y = diff(fun, x, n)     % // 函数fun的 n阶导数
      ' t8 e: J, z' b

    * o: u+ C* {8 c& N- a( }) b2 L7 s# e+ X
    注:自变量为唯一符号变量时,可以省去 x x x。
    # `. B6 G! Y1 ~; o
    * Y, A& i$ j* o6 N+ N应用举例
    : ~+ I2 \" i, H: C8 X, c4 n. ~例1 :普通函数求导
    7 Y  |0 Z8 B! E4 P3 K8 d" W5 N给定函数! n1 U3 f1 l, j+ o

    9 s  ~( {( K5 p( k0 Z, C: V- R​        
    4 c: n2 W0 s) `4 e. _$ H+ P; @分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。
    , H+ X- _' [! W" \2 `8 S4 c6 p, J. |' ?2 z2 t
    • 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+ E+ m. [! r3 P: p* O5 d) r

    5 W$ E0 j; f( w0 e5 k, o
    $ t% I0 x1 M$ O( K根据结果可知diff函数的效率较高。7 N* ^( [0 N1 V9 U6 J8 I1 c# k
    8 e3 s# s- g/ _0 z
    例2 :复合泛函求导+ G( n! u. ]% W# C# I+ j$ R
    已知函数 ,推导其三阶导数公式。; J7 T# s, S' C
    4 _- Y* m% ?( Z+ |5 L
    分析:该题难点为如何定义 f ( t )
    , h- f6 Z, t1 Q1 j. A0 p8 {' w. H: n
    9 N( c: L* S4 f0 M
    • syms t f(t)
    • G = simplify(diff(t^2*sin(t)*f,t,3))4 L' d6 |: Y/ Y

    4 ~1 O1 D( v9 N9 F  E- _/ m8 y7 \6 _/ S4 Y) j
    时, F ( t ) 的三阶导数为  Q: T0 ~5 }5 K) E4 p! e; w% w) y$ J7 n8 k

    , y) v9 V; M# ~0 {
    • G0 = simplify(subs(G,f,exp(-t)))
    • err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0)
        p, b6 W$ m/ t: e
    2 M1 j" s& }; r8 X9 O8 i
    4 ?( _* j/ q9 G$ p) V- @
    例3 :矩阵函数求导
    ! A" ~, D2 m7 f9 r0 J: _4 c
    $ E  \- X" e! b- O- X. t2 c% [9 N9 _4 m# N" Y4 S
    对每个矩阵元素直接求导
    $ h  E# D0 s, d  u6 {3 b
    9 t& y+ m: X# y# d/ s1 j
    • 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)) O' m" T0 b% h7 J( K( w

    / u- X; \; E  y. i% o' l( V9 d5 U1 {0 m. t; c) o0 k) I( E
    多元函数的偏导数
    ' i! I6 g! p' i* m4 P/ t8 ?% rMATLAB函数语法: C/ y8 U2 c& U7 P5 R% ^- t0 d
    高阶偏导数
    1 }" @3 V4 W6 w3 d " [. U: Y; Q) _' ^. d
    的求法# S2 x4 J8 v: Q# T+ w) d0 q
    & h* q' z5 q5 c9 }. n
    • y = diff(diff(fun, x, m), y, n)
    • y = diff(diff(fun, y, n), x, m)3 O/ g" Q4 o* g  J) a& W3 m/ T1 I

    6 n$ A/ ?5 s, f. z# D# j. p
    : c* ^" U0 A7 A7 U' u: V6 ^) u6 S  D应用举例5 v6 D1 L+ Y/ C4 \2 u0 v
    例1 :求偏导并绘图
    : {& r1 e; ^% H- R" J% u' F  f求函数 的一阶偏导 ,并绘图。, e( @5 v: A% k3 _& j# O

    2 {7 L/ k5 v, g  ~# t0 s$ P- N
    • 求偏导数
      % _5 X; n# ]& d, k- b( z
    • 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)); z/ Z# g5 V+ D  N# ]

    5 F1 W' e7 n4 b6 _8 X/ c! O7 I; o/ m& M$ y4 K8 a2 h  y0 b
    • 绘制三维曲面6 D; `& X+ J! }8 `
    • [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])! M" I5 ^- e0 W; b- p; @7 y2 W
    ; B- |+ P- @' M1 d/ Y
    5 W/ w, f. L: k- [! [" E5 Z/ N8 U

    / X- j7 k4 T" N! v5 O$ S/ V1 I; u; A: `
    • 绘制引力线(负梯度)! J7 C$ O" \/ m
    • 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)+ y" p) B& Z9 ^; \- i3 `5 u# _+ B) z

    9 g/ `. l- l3 W. K   h0 S9 F' z  Q) \
    * U0 f8 h, }+ \9 b0 u/ O

    8 S/ S. G+ X8 O9 B! R4 F5 B例2 :三元函数求偏导
      `4 l9 O6 W. C, P8 T求函数 的偏导数 1 l4 A* v) `' D% @* y2 }$ ?/ }- Z
    • 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)
      , f+ n7 U# z4 Q% a# c  a% _6 a2 _
    - @8 k' {' c0 r- x- b
    8 o; @( F# [6 \" `# a5 y
  • 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-11-24 01:15 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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