|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! p7 {" G! Q: J
MATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。/ M' @( T) B* a8 y" s0 c
, V0 P! h2 A. E/ l0 u7 e/ P7 m目录
! e9 E8 `6 P4 h. B! p3 H函数说明
1 C; G8 q/ W" b2 Z( Q1 R* G( X- W应用举例
3 c2 K: J' @- C! |2 P% m1 }4 ?0 B第一类曲面积分
0 h9 S3 y' X) R: v b$ S第二类曲面积分) h' b3 }8 t3 c) F3 l
函数实现
5 h, ~: n7 I& J3 a! Z: R% ^! K" F2 _2 T
函数说明
* r8 ?' X7 ^( a$ S' V4 X; b* ]1 X6 v) y f) N& G4 F1 l: }
- 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& N( p) F% K, I' j! L7 y
$ J0 F( I$ w+ v1 m. i4 l
, ?# N% q: c# z: ?9 ]6 ?, k& q: T
应用举例
$ _. _$ U) e* c
# Q9 w1 y0 I1 v第一类曲面积分, H/ O+ Q" s$ `
1. 计算
, 积分曲面如下:
% _$ j r( s. z% J B+ Y: h0 p/ @, B
6 @ Q. r9 Z1 j
7 p$ D' y3 `* M2 b
求解方法
# w) Q" \& r+ [1 J( U$ G" R# H$ w! k1 p* O3 D4 A: T2 }0 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])( g6 q1 d, G$ }5 b% ~
6 W& p. j3 |( v6 H
3 i* S% C9 j7 @
第二类曲面积分
9 J A/ i9 k: U' b7 R$ E' [3 x z# o" g' Q8 ~
2. 计算曲面积分
, 积分曲面如下: K9 O/ F3 Y+ B6 _( [ ~
的上半部,且积分沿椭球面的上面。
/ W% U* g: _, E' c" i& `; L注:引入参数方程:
; 且
3 S1 P, {2 b. B: X) a2 s, S: |
* } C: p# w" L Z3 H
: f) Z! W$ C W求解方法* w7 _0 S5 k; t* S5 ?' h
5 P/ g) z4 [! n, w3 ?7 c1 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 m4 X6 W2 y9 D" h) a
4 Q+ g" _' t* ^* O$ ^2 S3 w. R$ `1 y) q" v; L# v9 w/ x3 D0 q
函数实现
4 Y$ L% Z( S5 l/ Z: t
* k) r" ` f9 m a* |/ R- 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
; w5 s- Z) l3 a: Q' K0 X ) \' l% s! |! P! j9 p2 W
|
|