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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目录
    5 y' |3 `) t8 N0 ^: l5 ?一元函数的导数
    5 B/ ~* {# Z& C& k% i3 c, x- WMATLAB函数语法
    & m0 r# P! _* w! J0 o应用举例
    ! }9 U/ i( m; T/ d3 C例1 :普通函数求导
    4 U6 M5 A, r  \8 W' ~例2 :复合泛函求导
    $ k3 q: I3 n& f例3 :矩阵函数求导# n0 i, X3 \5 K# l1 q& a8 q* ^7 [5 E
    多元函数的偏导数( d; j2 `; g0 }7 [
    MATLAB函数语法
    ) `* K: W$ h, Y# b% K- T( @. n应用举例
    % M3 _0 i0 V- S- x  c例1 :求偏导并绘图
    8 `# o5 b; N) z2 H例2 :三元函数求偏导
    2 ^" s3 I8 _1 q% D# {0 q/ Z
    , [) k6 h4 S) k2 _$ e$ ]. J一元函数的导数$ y" I$ @- K8 N3 ?. k
    MATLAB函数语法
    # I" d! X; s7 {$ L% e
    • y = diff(fun, x)        % // 函数fun的一阶导数
    • y = diff(fun, x, n)     % // 函数fun的 n阶导数
      $ L; j( c+ T3 e5 g( p* Z

    : s, q2 \- `% V6 k3 x
    ) D" Z* t4 ]& ?- U! a: S注:自变量为唯一符号变量时,可以省去 x x x。) K$ d& r3 R- |0 a
      x8 l, K% J) w! h% i
    应用举例6 {# e8 s2 H% g: K  w+ x, c! P
    例1 :普通函数求导
    * p& B) J& w- S' D8 j2 A# d给定函数
    3 H0 q" j) i3 X+ c " S$ _0 I4 k, i, b  v- _
    ​        7 u3 R- y6 l; g$ }0 x1 j
    分别求其一阶导数和四阶导数,并绘制原函数和一阶导数的图像,计算求解50阶导数时所用的时间。9 M9 U2 B8 y) M0 J
    3 q$ J( `  v2 M0 W' {4 X
    • 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/ s" N/ T5 C" A7 B! N4 r# k, v# l

    3 v1 T* O. d& p0 @) _. N3 a' A; T9 n7 s' G+ C) `0 u
    根据结果可知diff函数的效率较高。) Q5 k( f1 o) U

    * `5 d/ J7 \& V$ d/ b1 Z例2 :复合泛函求导
    * M; c/ D* P( u" j  ?* y6 E已知函数 ,推导其三阶导数公式。
    . n  j9 v1 @! v- D3 X% m5 \5 D, H+ Q; a$ Y: }; a: e
    分析:该题难点为如何定义 f ( t )- ^/ c+ S' h; r, R
    - K; d# J1 g8 ^
    • syms t f(t)
    • G = simplify(diff(t^2*sin(t)*f,t,3))  X  b* \" A3 h5 l4 C6 M

    5 q/ k2 T6 Q7 a& j
    " k7 a! W6 T7 l) [, m# W& a 时, F ( t ) 的三阶导数为; R# P5 T! [5 E
    3 u2 `3 ?: A+ Z+ `
    • G0 = simplify(subs(G,f,exp(-t)))
    • err = simplify(diff(t^2*sin(t)*exp(-t),3)-G0)+ c& g0 B! R2 X! o0 }7 Q# D& K, R

    5 Z7 e1 o/ d4 [. M8 s/ p: a3 t2 R7 W( |6 c
    例3 :矩阵函数求导
    + Z4 U6 u/ p; O' c : l9 s' R8 ^8 M4 Q1 G* v
    : j' B1 {9 w. V) ]8 Y# V! N
    对每个矩阵元素直接求导* ?2 V* S# b  A& }. N

    ( s( k2 x& B) q; b# 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)
      2 \& ~7 r8 z) t2 Z# k1 w' I

    5 |+ R- h8 Y; S0 y0 ^% m' l
    + T' O7 O, f9 E' @多元函数的偏导数+ w# o7 c4 N3 W. T  W0 I6 J
    MATLAB函数语法4 I! Z. j* Y3 o4 X, H$ w: X8 Y) Y9 t
    高阶偏导数  x+ b$ ~0 x- K' j1 W5 G5 F

    9 C* }' J9 m( g3 }的求法
    0 m7 B' U7 J" N" @9 W6 r. j
    / g, H  {4 [9 H& V  _3 u
    • y = diff(diff(fun, x, m), y, n)
    • y = diff(diff(fun, y, n), x, m)
      : x$ w+ n8 I% k9 _' C) ~, b6 D  L' c

    % Q  Z4 z6 B( @/ @
    1 Q( w( h% s( I$ P, S" ?& H% E应用举例  F. p4 {' E7 w( O7 P
    例1 :求偏导并绘图; \: M0 S  D6 G$ u6 z
    求函数 的一阶偏导 ,并绘图。
    ! W, A, f, y# ?" R4 q$ a  g7 A  J  n4 j4 o; ~
    • 求偏导数" E$ }- @! a7 d9 q
    • 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))
      ' W9 ~8 N8 _5 `/ q5 ~

    % }3 ~( W/ s$ ]5 Z. b9 e
    ; m+ z2 T3 x! R/ m- a# t
    • 绘制三维曲面9 G, U6 _* Z3 I- 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])
      3 G$ W/ f% F6 A

    . h. T/ b, W  J1 F+ `
    % `6 ^0 W0 w& h) y  l! `+ S
    ( x  S- ~9 Q  ^1 C2 K. D9 r6 f: ?* r9 t$ k% e0 D' Y) p
    • 绘制引力线(负梯度)
      . N  B) x! y$ O" i$ Y* K" w
    • 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)# S% ?2 @( m$ W+ [3 [! \
    + u7 _' L! x/ P0 T

    ; b3 ?/ v& X* K' r1 P0 k0 r2 q
    9 P- Z5 ]" a  i2 Q
    : v8 J, J. i' H# l/ }: Y) t# k例2 :三元函数求偏导& E% }* n5 V4 a  [) s2 z
    求函数 的偏导数 : m) A1 k' M0 L5 X5 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). w! |6 t7 W  D$ W3 ^1 J- [
    / R8 X$ t* L2 ?& [
    " j9 j' T# _% C0 r! t/ i
  • 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 00:09 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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