|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
( d; x1 l) ^6 T, P2 S
MATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。
' x3 \% ]/ _" e. t$ I; o
' a4 ~0 L7 `% |2 O! a6 t0 A目录/ k, Y6 {! ^4 I5 J6 ~, l+ i
函数说明
) Q( l. \6 T6 E! B" v应用举例. U3 s- m" `& D' p' q
第一类曲面积分
3 T5 {0 q: w1 v; I第二类曲面积分
4 X5 i! k0 s: g) G! V函数实现
$ P& `* |& v( ]
- ^1 O# c) x7 L7 k7 M( R函数说明
' J; t) e; L6 e3 m% Y M7 x6 i2 u p* H5 f" x0 p
- 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])
2 w* [' m* p# O8 y
4 {! i$ F$ a8 G9 l
' S% d! k9 C; [& C$ D6 V1 z应用举例
C$ u# K, `- Q9 Q7 n4 S- i! y; T+ k& L4 l: G. Z) F" F$ p+ r6 t
第一类曲面积分
4 \1 G ^1 ~2 T. {) u1. 计算
, 积分曲面如下:
8 ?3 K. }, \6 z! x& d1 o0 m) q) I7 b3 b2 u' B5 v4 z; V8 _- V
7 ^" G- g2 n5 ^# z% K( V! P4 d
求解方法# u; a4 y* _8 X# r* \) h
( c( O9 }9 [7 G6 ^/ P
- 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])
8 e9 H" p6 p f
& M X" A Z, v- P9 @9 t/ c$ Z6 z) v8 n( N! q
第二类曲面积分
- j q. h1 R4 [% l2 z4 M5 n. p
: f$ o; e5 k: W" ?2 }; `2. 计算曲面积分
, 积分曲面如下:" M! t+ `# Z2 {! F
的上半部,且积分沿椭球面的上面。
# j l4 `5 B8 g注:引入参数方程:
; 且
6 |. U* G/ I0 J& H* ~* r
9 ?/ O1 D4 m, a% u$ X: D9 ^( V$ Z# K4 b% L
求解方法. ]/ d8 U" t' J& ~5 }! O
% p+ ?: B! {8 ^! [) O: Y m
- 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])4 E' G# ~( ?/ P K" i3 I" N
3 O( u7 m* q3 k; Y
9 y6 Y: m5 _1 {函数实现
2 I9 J6 |1 O, g( E9 D+ L: l" B. d* i4 ]- \1 h
- 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));
- end7 ^5 {$ M2 W6 U
2 @' ]( R5 a! k# y8 L. @6 c |
|