|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% k/ h' m0 c' q" U5 u
MATLAB语言并未直接提供曲面积分的现成函数,因此,此处给出计算曲面积分的函数。
/ [/ ]6 N4 Y# q- c8 Y
( J9 c9 z6 j$ F+ m3 H" C2 k" l' B目录# U, [+ ?' `3 k& c
函数说明- i. h9 O6 s) q" x# D: s; ~
应用举例
+ q8 H. K, j$ V第一类曲面积分
/ `. Y1 i4 Z& P' G" {1 z第二类曲面积分9 l U$ m. p9 h' X
函数实现7 q! @2 d- V4 n7 {* H( U n
# K0 p! A5 K% b) i1 ^& N
函数说明
& `' i/ \* q1 q8 }; A3 O3 J
" \8 F; `, ~6 w K! W: x- ]- 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])) J7 W0 h9 r' [3 S/ }' J
( z" Q O6 l* ?3 y
$ o# O M$ b9 w# m0 Z' I5 @, A, u应用举例# @% M4 ~6 i* e- ]" I e
! \2 j6 k% U6 o8 f
第一类曲面积分) | D( K/ {; g; [2 O/ `
1. 计算
, 积分曲面如下:
. w5 E% u: n( h ^% E- [* I8 U( q% }1 \" M
) |# ~, r2 i4 d+ Q: w5 b求解方法" d' k: S+ N: f
* K; ], K$ u$ V- 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])
/ ^0 o0 E. z4 F) m/ J . E: F, I# r! l2 M" x0 v: Z
/ j" b( z0 H Z5 t- h1 l第二类曲面积分
{5 }! p2 f$ o1 \. N' g' N
, P# H( {; o b: H4 T4 Q. z! V2. 计算曲面积分
, 积分曲面如下:2 }4 g6 E! `5 a, T# N$ Z
的上半部,且积分沿椭球面的上面。
) \' W2 G: s4 {注:引入参数方程:
; 且
" q" u: q! B9 W
9 Y6 h$ G' d" A4 w ? a5 F8 J4 Y; X3 L) t I
求解方法* w) H( N' j# s+ X& N$ `3 [
/ z3 M: C6 x3 F1 k) G
- 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])
; B# i2 n; j* I# E( q , H3 {6 q# v3 U9 A4 a
/ ~. C4 W6 u* x$ M- H函数实现- Z7 k5 ]2 z% q% z8 `+ W) I/ X9 T0 Z
$ d' T2 ?) }% B7 v
- 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% J9 P X* _; T
# P6 N/ O7 k5 G0 D% `, T
|
|