|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 N" P- g* w2 A) k; zMATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。! n j) M& w* j3 t5 `
, g0 {8 B# b8 O( ^' S
目录
8 S/ z% @% ~! u/ Q5 h' L函数说明/ s: n8 ^, g& U4 q; q
应用举例& q7 g- s0 ?# \
第一类曲面积分
0 ~3 Y) g# n& f2 D4 ~' J& m第二类曲面积分0 l* Q% J t# i# |% k
函数实现. r7 n7 v0 a! R! b, z
( g; c; S \8 f函数说明/ }. @( T5 ~& }! [: X
" U* X+ T0 O+ U! `- function I = suRF_integral(f,vars,t,a,b)
- %surf_integral
- %第一类曲面积分
- % I = surf_integral(f, z, [x,y], [x_m,x_M], [y_m,y_M])
- % I = surf_integral(f, [x,y,z], [u,v], [u_m,u_M], [v_m,v_M])
- % Examples:
- % 计算int_int(x^2*y+z*y^2)dS, 积分曲面如下:
- % x=ucosv, y=usinv, z=v, 0<=u<=a, 0<=v<=2*pi
- % MATLAB求解语句
- % syms u v; syms a positive;
- % x=u*cos(v); y=u*sin(v); z=v; f=x^2*y+z*y^2;
- % I = surf_integral(f,[x,y,z],[u,v],[0,a],[0,2*pi])
- %
- %第二类曲面积分
- % I = surf_integral([P,Q,R], z, [x,y], [x_m,x_M], [y_m,y_M])
- % I = surf_integral([P,Q,R], [x,y,z], [u,v], [u_m,u_M], [v_m,v_M])
- % 注意:I = int_int_S(P*dydz+Q*dxdz+R*dxdy)
- % Examples:
- % 计算曲面积分int_int(x*y+z)dxdy, 积分曲面如下:
- % (x/a)^2+(y/b)^2+(z/c)^2=1的上半部,且积分沿椭球面的上面。
- % 引入参数方程:x=a*sin(u)*cos(v),y=b*sin(u)*sin(v),z=c*cos(u);
- % 且0<=u<=pi/2, 0<=v<=2*pi 。
- % MATLAB求解语句
- % syms u v; syms a b c positive;
- % x=a*sin(u)*cos(v); y=b*sin(u)*sin(v); z=c*cos(u);
- % I = surf_integral([0, 0, x*y+z],[x,y,z],[u,v],[0,pi/2],[0,2*pi])
' i: t, U- {; w
( O$ `3 c( d! _: ^( k4 m/ L' V" H# _6 Z6 b
应用举例
]# R9 Y( o9 P5 h* h
, u4 {$ V' X/ p+ a- ~第一类曲面积分
8 V. U5 Z- O. n' Z1. 计算
, 积分曲面如下:
5 z0 x/ O# Z0 ^; \& a8 [+ }8 X a& O. V9 G( S/ j$ N0 ?& T% ~
2 W n# g9 O- |1 V: B- T5 f求解方法
8 H$ q9 A/ O+ x" ~) A; w1 V
) Z6 ~/ E7 F' {; {" y) Q- syms u v; syms a positive;
- x=u*cos(v); y=u*sin(v); z=v; f=x^2*y+z*y^2;
- I = surf_integral(f,[x,y,z],[u,v],[0,a],[0,2*pi])# H. B& w) u( }6 D9 f
5 C% U) d& i8 u* z0 }
! B2 m4 R2 b2 `1 h5 i第二类曲面积分% O4 ^0 x% L2 O
' W; r' H8 Z3 j( d( l; l( [0 U) {2. 计算曲面积分
, 积分曲面如下:: ?0 R2 y1 d( s2 } `+ A5 R
的上半部,且积分沿椭球面的上面。
7 v% K# V5 R( S" \6 d注:引入参数方程:
; 且
6 M$ ^, c9 h+ J/ ?1 N8 C3 y3 X$ m8 I# [9 C- {# h% |. x
( Q& k1 [# ^6 Y% D( J1 U! W
求解方法
5 |1 p2 U+ F: M0 U+ z w* T1 q; y4 _4 z
- syms u v; syms a b c positive;
- x=a*sin(u)*cos(v); y=b*sin(u)*sin(v); z=c*cos(u);
- I = surf_integral([0, 0, x*y+z],[x,y,z],[u,v],[0,pi/2],[0,2*pi])
2 N/ H* g6 t& ` ; U; I2 r0 v' E8 x! N6 d
! U; S0 l# A4 k( J/ D9 T8 j函数实现
. y: r# q2 k! T# K* V4 q! G: ^( H& \/ `6 G
- function I = surf_integral(f,vars,t,a,b)
- if length(f)==1
- if length(vars)~=1
- E = simplify(sum(diff(vars,t(1)).^2));
- F = sum(diff(vars,t(1)).*diff(vars,t(2)));
- G = simplify(sum(diff(vars,t(2)).^2));
- else
- E = simplify(1+diff(vars,t(1))^2);
- F = diff(vars,t(1))*diff(vars,t(2));
- G = simplify(1+diff(vars,t(2))^2);
- end
- I = int(int(simplify(f*sqrt(E*G-F^2)),t(1),a(1),a(2)),t(2),b(1),b(2));
- else
- if length(vars)~=1
- A = diff(vars(2),t(1))*diff(vars(3),t(2)) - diff(vars(3),t(1))*diff(vars(2),t(2));
- B = diff(vars(3),t(1))*diff(vars(1),t(2)) - diff(vars(1),t(1))*diff(vars(3),t(2));
- C = diff(vars(1),t(1))*diff(vars(2),t(2)) - diff(vars(2),t(1))*diff(vars(1),t(2));
- else
- A = - diff(vars,t(1));
- B = - diff(vars,t(2));
- C = 1;
- end
- f = f(:); abc = [A, B, C];
- I = int(int(simplify(abc*f),t(1),a(1),a(2)),t(2),b(1),b(2));
- end' r1 j- t& ]. t$ c. _. A8 T8 t
- G5 N: [6 i* f2 R0 w8 I. t
|
|