|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 s8 f/ h5 ]( Z
MATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。% P- U- Q: j9 T1 F2 l `. x
' Z. v) @8 C2 u( a: a
目录4 E8 P; I1 l' }2 s" z% K
函数说明
t3 v; f. j7 l3 Z% Z应用举例
5 a8 _( _% J5 l4 [' O% Z第一类曲面积分
) w B4 K$ O" R( f. n7 V第二类曲面积分
+ b0 E3 `& j/ u函数实现
$ I( |& ~- \( Y
2 P* I! R Q5 }+ H函数说明' ~5 s. e } g0 `
" P$ e6 Y, _. ]: @4 b
- 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])
7 F3 N+ D2 @4 h j) c7 X, {3 s0 ? ! H+ z( H T" N. j
$ Q7 ~5 T. b/ R1 ?" ]应用举例
6 y) P: A( @5 i( O
, i0 }! h+ O1 z, F2 Z& p9 w第一类曲面积分- [. ?8 V3 k0 a% f3 r
1. 计算
, 积分曲面如下:
3 A0 u2 H3 l9 |# B
! ? T( J, v- O" w# q9 V4 I( O" r4 [8 a& M: d$ m( `
求解方法
4 e1 V" v7 H0 G5 d' Y/ u; J$ `5 P& P6 U1 a; T) \# Z
- 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])
; x' k- X& T& ^. D, H - v- M' ^7 V! f
# a# u% M, F% E: R* W; B第二类曲面积分* w# ]! b6 T6 E: B* q
; b% W! K- _. z6 k
2. 计算曲面积分
, 积分曲面如下:( Z; _5 h" a$ `; h- a! E
的上半部,且积分沿椭球面的上面。
( v: C/ E! _ z7 @6 C注:引入参数方程:
; 且
# z$ u: r! p5 _) X# Y) o, y" Q
3 a2 ?$ P! J& ~1 T9 T
1 q4 X& x( e! r
求解方法4 n4 V0 G, P2 [- H- Z9 ^1 O' u
) M) T0 G" X6 H6 Y$ }" T( w- f- 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])
# y+ g2 F( d5 i, e6 f/ c" y2 M ) U. ]% J) R) H# g4 t% o$ E
/ v( [* a0 z; X
函数实现- @ `/ g: E! y
2 D) k$ t( } T. N; Q8 _- 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
+ l8 _9 o7 L3 P7 r, t! t
4 X2 ?0 j, C: }1 A7 R |
|