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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

, E0 D" x' T/ A6 j0 ~目录
' s8 [3 Z! e4 e0 P总述' Z1 Q) j1 d# E$ @% C% a$ @0 y! l
函数说明
7 i6 w  ^$ |0 y3 ]8 O% r8 ]0 |2 B应用举例
/ U* j. N: i3 Q- P" o例1) u' x( x( [7 r, c0 P
例2
9 A7 {) b4 ~8 T! u- M# E' {3 ]: g" \函数实现
7 n4 K/ }5 G3 [% W  z. N. W+ s% v, B2 O: M7 U
总述- y6 `' E' `* R2 u" h, ?
5 R7 a' g: E* P1 D+ a
# {& N6 G5 D& k! _

( \( X; [% s/ U% v
" v' D8 [, M" G4 P, p) ^6 U- Q" g 1 m% j, }+ H4 l

/ T9 o- S8 G! D' R6 z由前面给出的算法,可以编写出如下函数来求解隐函数的偏导数。
5 g( I7 t0 W6 P5 c0 p; y3 N; @( Z- B1 [
函数说明
. P* b: H3 g! x2 b' Mfunction dy = impldiff(f, x, y, n)! X+ y7 Q% _4 ?+ W! z9 c
%impldiff. Y  R% r" y/ y1 i+ y& c* r5 Y8 s
%隐函数求导) u  r- }) D+ F
%  调用格式:. N( g5 F. {+ b, Q
%    f1 = impldiff(f, x, y, n)5 [: J& O" q" j& c9 n" D' j
%  其中:f=f(x,y), n为导数阶次& V3 J# t" K. {- |: {1 X+ |
%  注意:该函数求解后有时需要手工化简
' \8 I. Z5 d$ B; O: W%
6 h9 h- S! a6 D! p; ]" x( z% Examples:3 g6 t' Y- u4 I
%  已知二元隐函数 z=f(x,y),求该函数的偏导数。
, p* [- V) I4 P( }. r# H. G+ b( Q% MATLAB求解语句:* _5 s8 e4 E! _# H6 a6 w
%  syms x y6 i6 O0 \* y, n. L6 {. n- V
%  f=(x^2-2*x)*exp(-x^2-y^2-x*y)7 C$ q9 u5 W3 H( y/ q
%  F1=impldiff(f,x,y,1)  % 1阶7 v: A' `( P$ a+ v& K+ y% j$ W( q* j. f4 \
%  F2=impldiff(f,x,y,2)  % 2阶
. j, Q! f2 I, U" `& U! B* I- n%  F3=impldiff(f,x,y,3); % 3阶" C$ ]0 y/ T, h

9 ?3 R) n0 G! v  }4 S4 |: C
0 t0 n0 e1 W9 y3 X应用举例
/ F9 X# `$ e4 j4 O( |0 R例18 H! \* u" D' l. ?5 M, x+ C
问题: 已知二元隐函数 , 求该函数的偏导数。
# C" Z  h+ z  g7 I8 h! q9 F& Z2 `  h
代码如下:5 L' c/ v/ N5 j, m  Z' V4 b

; e  C* B, z4 E7 q! Usyms x y0 {: R5 ~# n' T* k9 O* _+ t4 ^
f  = (x^2-2*x)*exp(-x^2-y^2-x*y)& f- P4 Q+ Q8 X* C6 ~6 U) y, s6 @6 [
F1 = impldiff(f,x,y,1)  % 1阶
+ n- \4 c0 c, m( k2 }5 WF2 = impldiff(f,x,y,2)  % 2阶
* c- z* K/ a  J$ E5 I9 J3 xF3 = impldiff(f,x,y,3); % 3阶
, K) l5 y$ Y7 P2 N) b0 s, ?[n,d]=numden(F3); n=simplify(n); F3=n/d  % 化简7 P/ B( o% q4 k/ E( u9 ?
8 ^# d9 Z8 ~5 I, t

1 O  J: k3 W$ l* r! }' {例2% o" |6 I# N  |8 o
问题: 已知二元隐函数 , 求该函数的偏导数。
0 }+ y2 P, l- {- H6 p: |8 F# X' ]# `& d
代码如下:
  W/ p/ ~+ |" @! C+ ~9 Y/ u4 |9 r: Y
syms x y;. O+ N, Q) H0 R- C
f=x^2+x*y+y^2-3;
! o  H: m6 |8 V0 A! ~f1=impldiff(f,x,y,1); F1=subs(f1,x^2+x*y+y^2,3)
: U: I, H7 \3 h& G+ z# V7 I% g9 sf2=impldiff(f,x,y,2); F2=subs(f2,x^2+x*y+y^2,3)
' c' r8 _% L  e* V8 W7 |f3=impldiff(f,x,y,3); F3=subs(f3,x^2+x*y+y^2,3)# y+ D4 N4 ~, E/ P& F) f9 W
f4=impldiff(f,x,y,4); F4=subs(f4,x^2+x*y+y^2,3)
* ^4 t9 N& @: W4 [6 R$ a7 R# _
$ ^! V, T5 K2 k& O% A
* m3 I; B  o) p5 i  qF1,F2,F3分别为:) k( o1 m7 D% g/ h& m
& U0 h, C$ t5 P: I* D/ H
* Y. M/ |  y! P
3 d3 @8 [( b# y
F4为:
# M. P5 ?. L" N
8 s4 _1 n+ |4 S: X/ @2 x  J0 t
. l& _& |& g1 D4 D化简后得:
. V+ K, j; W& S& u7 d - }6 R9 `, g) j, w' r
/ @4 W5 g, w; @, t2 V! _+ D4 K
函数实现) n2 u5 G0 `" v% N/ m* a; ?( ^
function dy = impldiff(f, x, y, n): e/ }- P  K5 R
if mod(n,1)~=0
5 o& L# ^3 Y1 ]/ f& Q# {    error('n should positive integer, please correct') 5 {$ ]8 c2 {# f2 ]
else
) ~% }) U0 Q1 v    F1 = -simplify(diff(f,x)/diff(f,y));   dy = F1;
5 r- N; w, u: \' G/ |% K. [) B: E1 K% x    for i=2:n* U2 ~" X& k3 |
        dy = simplify(diff(dy,x)+diff(dy,y)*F1);+ B% X$ C. e" S; N
    end
: d- J: C6 i* U4 Kend
0 h9 n( |( j, o6 o3 @* I8 V
  • 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-8-12 23:34 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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