|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ m D7 n0 \$ n) |MATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。
9 [9 i9 e# r; C p) x
" M% Q8 m/ s, s( ?, h3 U目录# k7 i# i- o2 _! o4 `4 ^2 P
函数说明
$ n5 Z& |0 F/ D& P4 X5 e应用举例
$ G. W) L* }1 n. c第一类曲面积分
/ {$ Y; Y+ U7 A3 V4 s第二类曲面积分
# h. Y3 Z& G" x% V$ d8 p& F7 x6 b函数实现+ q2 A w3 e4 D2 P0 n: o
: V. ^# t+ k4 k4 c函数说明' G' _) i9 \; z3 E$ N Z
; ]) ?6 L" v* {* `/ N& _6 j5 V& w
- 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])- Y& e+ K! d! @9 |) X# H4 b
' h; p; M% w# v: }% y3 H% ?
, ?& Y7 F) Y* M$ ]# u应用举例
& C% C7 R( O$ R3 p' R( @9 [2 U9 T* x
第一类曲面积分# Q; C/ i9 A; h( F& m6 L M& }
1. 计算
, 积分曲面如下:
6 E3 J! g: l, R! w9 U E# S% R# k% Z
2 i2 c; c7 r# L, A( G% M7 K5 e
求解方法+ f1 F- w9 P- J3 a1 c
/ b3 g8 Y" M- U# r, h! x0 Y% }- 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])) {9 C0 O5 t$ q
( S, L! e+ V) N* i* q V6 Z, l. z1 j1 z0 _# \
第二类曲面积分
/ B. T) W' K1 s4 s0 F) O6 [" E8 \4 D6 z# j7 m! B! `$ e# L
2. 计算曲面积分
, 积分曲面如下:
( w2 u$ f, P/ q/ v9 R
的上半部,且积分沿椭球面的上面。5 E1 Z$ L9 h! _$ F$ h6 }
注:引入参数方程:
; 且
; ^: [. J H# u
+ r) s/ d' R% Y( v! J% [- G) z8 p& K. \' d' K& i
求解方法/ n, O9 p. ?" Q& G
) O0 U/ F1 H% g+ _ u
- 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])
/ M, k& D U+ L% r1 Q2 I ! g W6 }3 F/ K; M4 V
3 \* d$ g: F) w) u" b, P6 B1 j4 v
函数实现% p$ u0 Z0 L8 u
/ }: s( N* |) x. N) C- 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" C! R1 u; |1 D. @
& k; Y" c* s/ f! e1 J |
|