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

matlab实现隐函数求偏导数(impldiff函数)

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

1 N; I% Q3 Z) d0 F2 h目录
7 Q* s" s8 G* @1 H' o; d总述
( N: B" @) c0 `7 S4 U+ ^! ]+ ?函数说明
7 S/ ?8 B  \6 _  }- e9 P应用举例( K$ X  ]& D; G) ^# y. C5 t6 P1 x
例1  P' O* T/ n. f
例2. K- u* n" K, y7 j
函数实现
$ ]$ Y/ b+ s1 c; D6 T7 D1 `8 ]& D& T. E( B& e! o% N
总述# b8 B3 h$ \. [3 M  p( Z

5 n9 j8 E# r$ @% e9 W
! h* V5 M) l% f* ~7 Q
' X9 g$ U3 L/ h
$ \: y! {+ g7 X# s! v4 O
* B8 P, v7 j/ j7 l; `( _+ n$ n' F' s) n! a6 ^- Q9 V
由前面给出的算法,可以编写出如下函数来求解隐函数的偏导数。
6 H8 l' p1 N9 k/ j) C- Q. A
6 s: d4 M! K2 [0 t9 {2 y函数说明
5 R- ^# a" a! y) D9 c! ?function dy = impldiff(f, x, y, n)
- @5 n% n* h2 `- V- [6 B%impldiff  u& j- ^6 P' r! B4 X
%隐函数求导" y( Z- x8 N0 B/ E8 K% @& D
%  调用格式:% e; E$ `6 {4 y" \. O/ f3 E* A
%    f1 = impldiff(f, x, y, n)1 m% @/ D4 A8 `* {# }
%  其中:f=f(x,y), n为导数阶次
! S. Y6 n, F% |%  注意:该函数求解后有时需要手工化简7 H* Y- ^/ V! b8 k4 E, B3 V! i
%2 O0 u" G- w$ W% o: J
% Examples:
7 X# Q1 p* I6 Q2 P%  已知二元隐函数 z=f(x,y),求该函数的偏导数。
0 w6 @$ G6 }* @2 Y5 R2 l% MATLAB求解语句:1 w" d3 y1 c- \+ F3 r3 `$ a! {) J
%  syms x y$ _; L' a+ W) w' n4 B
%  f=(x^2-2*x)*exp(-x^2-y^2-x*y)& m1 a" S% V& A  {
%  F1=impldiff(f,x,y,1)  % 1阶& j  g7 q% \6 z$ W. r4 d8 r
%  F2=impldiff(f,x,y,2)  % 2阶
$ H5 z& Y1 Z: ^+ ^  H* j8 ^) t%  F3=impldiff(f,x,y,3); % 3阶
/ q+ p; R' m( y' g8 ?1 q+ D- ~
3 Q( `( q# N, i, R. u9 T0 B+ z% L+ M
应用举例
1 ]& ?: X" ^9 r6 U例1  u0 m% t& p! {  T! L
问题: 已知二元隐函数 , 求该函数的偏导数。: U$ r4 |9 A# c3 V' p

; Z+ M6 k! @$ x: c" Z代码如下:
5 x0 o6 B7 g5 d3 q
' }* p; e$ i- y8 M5 c7 z" H: ksyms x y
/ s0 A2 a7 R1 l7 u& vf  = (x^2-2*x)*exp(-x^2-y^2-x*y)" w7 [# J7 @* F- _- D1 ~0 X
F1 = impldiff(f,x,y,1)  % 1阶
$ a! h1 f- {0 B/ B2 HF2 = impldiff(f,x,y,2)  % 2阶
$ g* E2 I- |& m& [  E" H* Z9 hF3 = impldiff(f,x,y,3); % 3阶
: Q2 J1 ?3 k7 h+ ?3 ^) {0 E3 G9 z[n,d]=numden(F3); n=simplify(n); F3=n/d  % 化简- k# r) E1 H8 ]2 G) i0 S" C# H
3 T( i" }/ w* ~$ s: F3 \
" e: f: v* j: M7 Q+ k) M+ n' s9 V* R
例22 d2 X9 }2 b3 P1 k2 E% m' X% I1 y
问题: 已知二元隐函数 , 求该函数的偏导数。
3 c% ]+ A5 }9 H! m- c
5 }4 H! O2 D) C( N# `9 u3 }) P代码如下:) K' A6 R- P1 Z  {& `

/ Q$ x0 Q" b; o) T- asyms x y;
5 H+ j! ^+ k4 O$ C" w+ Ef=x^2+x*y+y^2-3; " [. {% q: Y+ d4 j, N
f1=impldiff(f,x,y,1); F1=subs(f1,x^2+x*y+y^2,3)
8 r" E" [& L1 d3 n* w6 ~f2=impldiff(f,x,y,2); F2=subs(f2,x^2+x*y+y^2,3)# q. X7 c, ~: I, j5 G
f3=impldiff(f,x,y,3); F3=subs(f3,x^2+x*y+y^2,3)6 u3 R1 }( B5 U; q
f4=impldiff(f,x,y,4); F4=subs(f4,x^2+x*y+y^2,3): R  \3 W9 w+ ?' l) p" r# M1 e$ u

! N# w; L6 ?/ d! c: S# t) m
) u. A& |! {: |+ ~; x* {F1,F2,F3分别为:4 @( t5 P5 a# z  q+ V

* C5 f0 S& @8 K- A' a2 B4 F' P3 a: J3 A/ H
8 B9 K% A2 Y) H; l, O/ L2 b/ D
F4为:; K5 A" p4 {1 ]. h$ |' ^, s

1 _, T) z* W3 K1 l8 r7 U4 k' y( Q8 F- N
化简后得:
) j4 i) r: z0 ?! n4 d+ q, ?5 T4 ? ! d0 \5 L+ _' ]

5 n* u4 @! k; u9 `6 h函数实现/ \1 R2 B- p/ W
function dy = impldiff(f, x, y, n)
5 ?# ]- A3 W7 f* Mif mod(n,1)~=0
  d7 c) D3 b' s5 B/ c! ]) o% R    error('n should positive integer, please correct') 1 z! W" T, H$ l
else ' q9 ~8 a" e8 g5 q. p# j, q
    F1 = -simplify(diff(f,x)/diff(f,y));   dy = F1;, t/ ~' H0 T, w1 f6 _8 E
    for i=2:n+ }; F2 N, M; E
        dy = simplify(diff(dy,x)+diff(dy,y)*F1);
0 a( W* V6 C) I# s* w$ B9 ]/ T    end% r! t' s8 x) a$ N7 Q
end
  d# L9 M+ y0 ~
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-1-27 10:45 | 只看该作者
    matlab实现隐函数求偏导数(impldiff函数)
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 10:19 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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