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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
- ^$ }3 O. b7 K% ]# s& {
目录$ ^5 j& ?( H8 ]- b
总述+ ^/ g& M3 e$ G( d* @( i0 U
函数说明* n: D$ i* B+ B4 H) S5 j2 q- x4 t
应用举例
+ e" o$ j3 R& y# [+ Z) v. b例1
9 ]1 t, ~2 {* u例2
- F( V9 y' S5 q+ ~函数实现
0 @" }1 d. `# L' B9 m" q8 ~9 r3 m1 \( L0 L2 A2 s. _
总述
# u. \5 W: G) _. l" g& D 9 K% s2 Z- W' o' O# F

4 Z/ L% D2 d9 G  j
; e, }' ?5 R+ j% P) ?
" L8 ?6 X; S1 x$ F4 q' n # M# M! _& Y  i" o
' P3 X, {6 V& n: m# K
由前面给出的算法,可以编写出如下函数来求解隐函数的偏导数。
9 _. e( r" E0 X9 w  b1 p1 u
, D5 J( O& S+ ]  X1 Y& H函数说明
8 d$ X- z- x( B& A- J! Efunction dy = impldiff(f, x, y, n)* V$ h3 V: `. ^: v" j
%impldiff
1 u% r1 p* f" j! I%隐函数求导
3 I5 ]/ v+ X4 y- D( |2 d' _%  调用格式:" c0 ?2 D+ D, S5 Y2 W( i& e8 @
%    f1 = impldiff(f, x, y, n), a7 p! x8 p) @. B# R$ U2 |
%  其中:f=f(x,y), n为导数阶次
: F8 a( ^2 ]! _! ]5 t0 @7 s1 B%  注意:该函数求解后有时需要手工化简$ \- [2 G7 O" z/ m
%
) R( [* {8 M( N8 V- d0 o% Examples:
( x( f6 W. c, ?3 ~%  已知二元隐函数 z=f(x,y),求该函数的偏导数。& o* O. b2 Q: }) j, x. i
% MATLAB求解语句:
. @% c5 u8 e+ ~6 r- |3 j%  syms x y' G3 u; `9 a. X8 @; u  X
%  f=(x^2-2*x)*exp(-x^2-y^2-x*y)$ Z/ I# w/ S/ p- }
%  F1=impldiff(f,x,y,1)  % 1阶, P6 T/ u4 Z3 i& D
%  F2=impldiff(f,x,y,2)  % 2阶; g" o; M" U$ z4 O0 l3 _8 g% B
%  F3=impldiff(f,x,y,3); % 3阶
% O# G) V$ @& p7 c& f  i
5 h8 {: o: T0 H' V( L9 x; ]  d' l# I2 S) h/ g. q
应用举例. E- ^4 b7 L' h/ f; E+ P9 I" g8 Z
例1# O7 r' v: z$ {  e. a+ Q
问题: 已知二元隐函数 , 求该函数的偏导数。5 W# Z3 k5 `* f2 o0 g2 B% t

! N2 W0 n( b" a- d代码如下:
' J8 ]1 g6 i+ |5 q* A( Y$ g1 h  [6 [, e9 u" ]# m
syms x y0 D; w2 U- x9 M6 A. s8 y/ o
f  = (x^2-2*x)*exp(-x^2-y^2-x*y)
" ?5 d" l8 B1 h: B# WF1 = impldiff(f,x,y,1)  % 1阶
( q" u7 P7 N- K2 x: x9 v5 UF2 = impldiff(f,x,y,2)  % 2阶
) F! E- R5 l( r& n, G' D1 l' i$ ^F3 = impldiff(f,x,y,3); % 3阶3 Z: d% U6 g+ ]$ y/ V% d/ l/ d
[n,d]=numden(F3); n=simplify(n); F3=n/d  % 化简* l; [+ n: L/ H7 S% G6 D4 q
# B! n* A/ Q0 l( k
0 U6 R- H1 ]7 r. o
例25 c" I; l- c1 e4 ]
问题: 已知二元隐函数 , 求该函数的偏导数。
8 R+ N: c/ B$ P7 c( v, f
8 X1 O( f+ m& I# j! T代码如下:
/ {5 u) H0 d+ t  M+ x$ Z1 {& e. M# f, g6 \( [1 d$ h
syms x y;& V% Q* H5 |: Q; j% C$ F
f=x^2+x*y+y^2-3; ' G$ M7 i. L" j+ X2 O9 ]: A
f1=impldiff(f,x,y,1); F1=subs(f1,x^2+x*y+y^2,3)
6 k1 I% G5 f6 R+ S; {* _f2=impldiff(f,x,y,2); F2=subs(f2,x^2+x*y+y^2,3)
6 X! R  e& ?) L& Q! Z0 k4 lf3=impldiff(f,x,y,3); F3=subs(f3,x^2+x*y+y^2,3)
+ }& K/ o4 D0 L8 ]' m( Gf4=impldiff(f,x,y,4); F4=subs(f4,x^2+x*y+y^2,3)
1 k' L% F* S' h. f
7 l9 f& Q9 |' l$ h& U: p1 n( A
( u" x, x  r. ^$ o5 _/ N; LF1,F2,F3分别为:) T/ w" c! e) D4 p3 \4 e& K: p8 n" r

  x, o+ D# C% ]& s9 q2 y
2 k5 a, j+ Q7 S  O6 m0 l7 F2 \+ u
F4为:
, N8 F" O: T9 E
9 b9 P- y1 U& O. v3 f  W4 K9 `% @/ X1 W$ F, u- a
化简后得:+ u% c! A9 p! r: H' p& n  J
9 ~2 l4 s& e  a/ L! L
5 Y) S& J7 I" e  f& p9 S0 f
函数实现) R& p5 H- Z5 t3 T1 c
function dy = impldiff(f, x, y, n)/ V' c, P. |) U
if mod(n,1)~=08 d, I5 _1 |% E6 ?
    error('n should positive integer, please correct') ' g: ?8 O& E+ S" t, J+ G
else
$ T* a" d" G: z1 @9 ~    F1 = -simplify(diff(f,x)/diff(f,y));   dy = F1;
4 r" W5 A' S9 t% K. N& |  k1 K$ Z7 X    for i=2:n6 n/ l3 y+ i; |. A; m2 _
        dy = simplify(diff(dy,x)+diff(dy,y)*F1);9 f1 @) \1 ^: y' |. V. b
    end% O% y& ~5 F& S+ N) `' b
end
+ [( e3 e. V. m, j( j6 b
  • 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-10-31 19:00 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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