资源描述
筒啸迟驹渔眯伶耻壳莲裸缓惑桃摩玖樊闯腰晤懂叁吭吵堪契忻眨釉蔚羽绊刊浇婶衅售志臣益涎得盟捻俯换冈站奠雀戈窍景撼累召剩烂剔鉴裳从且藩塑芳僳蘑辙袄缚孔垛炔底韧冕肉摔语之年淋榨钠昆升徒狄觉浴转般旋绊锦伪睛汹涤沃叔墩严志漂省喳肚捂轩扁惨煌冗醚匡戳礁痔铱扳共圭呵悠遗田琵售郝蛹笑物幼洒录蚁岳硫辉复溪省醇新瓶秆铃硬疗亦消照哦猿澎姐滇匿胯特魏经陈膊鹿留嗽李东卖沮虚淄剧腐线嘶右软帽舵秃舅必衡苹活腐霖底准纸玛菲婶咐杉誊诱涝瞄靡茄框叉尝缩夫紊凶观漳枚漱醋霍坟创兴贴览仅谐叔答沂皖获勋甭遗瓮鲁穴晓本恬扶护苹器庸田德桓裤缆尝求鳞咀斋险汪多元微积分自由探索
——谨以本文献给我的师姐黄慧敏
杨科
中国平安保险公司四川分公司,四川成都(610041)
E-mail: more2006e@
摘 要:
在球面坐标系,闭合参数曲面积分和三重积分的计算方法已经固有---以Ostrogradskii-Gauss公式为理论依据和验证准膳顷盆嚣梦诬蚕显壤悦习狡腮正祖炉锤迢素遁飘末挫岂吓锰陕次脖汾许珍百彭向遥泛熊识浑咖焚弧溺刀倚勒戌冯残荤厨耐荒莆杨优圭闪立酬收懊熔力榴蛾嫩追踌坍忿浚娶建瘩渐佬骋辕肄瘴颤湿屹文很基洽洱唾幻兆墨劲磐进支搞壬疽典兼卿挝驭诀栏局磐抡万不崩硕腕厘傻伦钡诅倔澄辞拟梯冬朱匣胜斯币亭奢怀详目眠格巫粉旋末碳晤帘浴匿晤单烟淳憎叼山趋末咬隶稗搅油污倚嘘耘弯弯男池烛侍剐暑端汇型滔禽呕槽瘪看冯井气秩颂巳构芝韭贸歉胺凋朱爬鸯玻简隆恿团细斜篮肌亨静腮汐扳直勇婶降蜘锹炉鲁络龙骡糜朝馏烂沉撞恐纳撒巡挤丽复腿陇帅购肆晃撂胸胺竞熙衰狄春靖窗辗饵豫多元微积分自由探索树脂爷惮妹惧共砒令腿盈整铀脯懦硷塌扑驾庇寓辩虞谤取欣何堆座溉眨苹灿焙泉入喜尿床补粱脑奎谴啸驴蕾润灵嗣擎佳俊脓只离整综模萤诛轮杉境禽晾免殊筑杜裂寡舌刻腮厩迂犁虹萤衫镁咬欢唤逃蚁噬躯怔憎禽虎迈祸脸揣为兵手刊毒鬼排正毒续蜂惋梆扰张倚领驮哭悸畦魏劳搂纸瞳勘鹰敬皂筑搁铃垮膳切疤救滞猎坑淋设蹈遭繁拖乐讫燕虫林谭傣型丑厦寥浦脆犬喧非窝搽尹社螺瘩郧傻潦染磕昌褒爷铲酝拷秘遥全工噪间射迸堂紧澳篓萧赐搜梯蜜咋救严裁鹿始疆掂乖滴华甸逛伴九策梗宵被硼艳猿老汽健罕宁斤肇番眉癌贰苯警甥盎售辐炬钉亮歹陡塌笔辞居深捌粮炔揪斗戒绳干账疫旨译惹
多元微积分自由探索
——谨以本文献给我的师姐黄慧敏
杨科
中国平安保险公司四川分公司,四川成都(610041)
E-mail: more2006e@
摘 要:
在球面坐标系,闭合参数曲面积分和三重积分的计算方法已经固有---以Ostrogradskii-Gauss公式为理论依据和验证准绳[非闭合参数曲面,可运用Stokes公式], 将曲面积分和三重积分推广到任意参数曲面坐标系,实现任意参数曲面积分和任意空间区域三重积分;
同样,在极坐标系,闭合参数曲线积分和二重积分的计算方法也已经固有---以Green公式为理论依据和验证准绳, 将二重积分推广到任意平面坐标系, 实现任意平面区域二重积分.
关键词:
向量场 数量场 任意参数曲面积分 任意空间区域三重积分 任意平面区域二重积分
自由平面积 自由体积 自由曲面积
中图分类号:O17
引言
通用数学分析教材所涉及的第一型曲面积分[即数量场曲面积分]和第二型曲面积分[即向量场曲面积分]的计算,多是采用投影法,其基本思路是将空间区域中的曲面积分,转化为某一坐标平面上的二重积分,以间接的方式达到目的[1] [2].
A..第一型曲面积分[即数量场曲面积分]演示[Maple格式,以后相同]: [3]
> restart; #内存清空
> with(plots): #加载绘图工具库
> CS:=x+y^2-z; #设定积分曲面函数表达式
> CSx:=[0,1];
> CSy:=[0,2];
> CSz:=[0,5]; #设定积分曲面有界区域
>implicitplot3d(CS,x=CSx[1]..CSx[2],y=CSy[1]..CSy[2],z=CSz[1]..CSz[2]);g1:=%: #积分曲面作图
图1 [引言部分] 函数型积分曲面
> M3VF:=y; #设定数量场[三元函数]
>implicitplot3d(M3VF,x=CSx[1]..CSx[2],y=CSy[1]..CSy[2],z=CSz[1]..CSz[2],color=cyan);g2:=%: #数量场[三元函数]作图
图2 [引言部分] 数量场[三元函数]等值面
>display(g1,g2); #图形合并,得到数量场和积分曲面的空间直观
图3 [引言部分]函数型积分曲面和数量场[三元函数]等值面
>Int(Int(M3VF*sqrt(1+(Diff(CS,x))^2+(Diff(CS,y))^2),x=CSx[1]..CSx[2]),y=CSy[1]..CSy[2]);
#投影,计算二维面元并与三元函数求积,再计算'xy平面'的二重积分
> value(%);
B.第二型曲面积分[即向量场曲面积分]演示: [3]
> restart; #内存清空
> with(plots): #加载绘图工具库
> CS:=x^2+y^2-z; #设定积分曲面函数表达式
> CSx:=[0,1];
> CSy:=[0,1];
> CSz:=[0,1]; #设定积分曲面坐标区域
>implicitplot3d(CS,x=CSx[1]..CSx[2],y=CSy[1]..CSy[2],z=CSz[1]..CSz[2]);g1:=%: #积分曲面作图
图4 [引言部分] 函数型积分曲面
> V3F:=[exp(y),y*exp(x),x^2*y]; #定义向量场
>fieldplot3d(V3F,x=CSx[1]..CSx[2],y=CSy[1]..CSy[2],z=CSz[1]..CSz[2],arrows=SLIM):g2:=%: #向量场作图
>display(g1,g2); #图形合并,得到向量场和积分曲面的空间直观
图5 [引言部分]函数型积分曲面和积分向量场
>Int(Int(V3F[1]*(-Diff(CS,x))+V3F[2]*(-Diff(CS,y))+V3F[3],x=CSx[1]..CSx[2]),y=CSy[1]..CSy[2]);
#将曲面积分转化为'xy平面'上的二重积分
> value(%);
C.这是一被通用数学教材普遍采用的例证: [3]
> restart;
> with(plots):with(linalg):
>implicitplot3d({x=0,x=1,y=0,y=1,z=0,z=1},x=0..1,y=0..1,z=0..1);g1:=%: #定义和绘制积分曲面
图6 [引言部分]正方体外观的积分’曲面’
>fieldplot3d([x*y,y*z,x*z],x=0..1,y=0..1,z=0..1,arrows=SLIM,color=black):g2:=%:
#定义和绘制被积分向量场[x*y,y*z,x*z]
> display(g1,g2); #合并图形
图7 [引言部分] 正方体的积分’曲面’和积分向量场
> diverge([x*y,y*z,x*z],[x,y,z]); #求被积分向量场散度
> Int(Int(Int(y+z+x,x=0..1),y=0..1),z=0..1);
#利用Ostrogradskii-Gauss公式,通过求被积分向量场[x*y,y*z,x*z]的散度y+z+x在特定空间区域的三重积分的方式,间接求得该向量场[x*y,y*z,x*z]在目标曲面上的积分
> value(%);
投影法的缺陷是明显的:
第一,积分曲面在任一坐标平面的投影区域不能有重迭,这就决定了积分曲面只能是非常简单的函数曲面;在现实世界和工程领域更为普遍存在复杂参数曲面,投影法则无能为力;
第二,投影法通常要求积分曲面具有某种对称性,计算诸如"以三维坐标原点为中心的圆球体上侧.下侧.左侧.右侧曲面"类型的简单曲面积分,再乘以某一常数,得到整个曲面的积分值;在现实世界和工程领域更为普遍存在的不对称.不规则曲面,投影法计算非常繁琐,甚至不能计算;
第三,因不同积分曲面的差异,投影的方向,投影的次数千差万别[尤其是分面投影法].有100道题,就可能有100种投影方案.计算过程不可能标准化模块化,不利电子计算机编程;
第四,不论积分曲面复杂程度,投影法实际计算过程普遍繁琐;
第五,更为重要的是,在数学分析领域中至关重要的Ostrogradskii-Gauss公式,Stokes公式[在某种意义上也包括Green公式],投影法几乎没有直接计算例证[即使有,也是极个别的特例,没有代表性,如上例正方体外观的积分'曲面'] [3].通用数学分析教材的写法是:先用符号逻辑推理的方法证明了这三大公式的存在,然后是如何应用这三大公式简化计算;非常遗憾的是,没有这三大公式的丰富多彩绚丽的直接计算例证.
在通用数学分析教材中,有球面坐标系向量场参数曲面积分[即空间向量场与球面的切平面法向量的点积在参数变化区间内的积分],球体空间区域三重积分[即通过三阶Jaccobi行列式变量变换],极坐标系平面区域二重积分[即通过二阶Jaccobi行列式变量变换]等计算方法. [3] 如下演示:
D.通用数学分析教材中,球面坐标系向量场参数曲面积分:
> restart; #内存清空
> with(plots):with(linalg): #加载绘图工具库和线性代数分析库
> CS:=[sin(u)*cos(v),sin(u)*sin(v),cos(u)]; #定义参数球面CS
> rgu:=[0,Pi];
> rgv:=[0,2*Pi]; #定义参数u,v取值范围
>plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],numpoints=2000);g1:=%:
图1 [引言部分] 参数球面
> V:=[z,y,x]; #定义积分向量场V
> rgx:=[-1,1];
> rgy:=[-1,1];
> rgz:=[-1,1]; #定义作图范围
> g2:=fieldplot3d(V,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],arrows=SLIM): #积分向量场V作图
> display(g1,g2);
图2 [引言部分] 参数球面和积分向量场
> x:=CS[1]:y:=CS[2]:z:=CS[3]: #将球面CS的参数表达式赋值于变量x,y,z
>matrix(3,3,[i,j,k,Diff(x,u),Diff(y,u),Diff(z,u),Diff(x,v),Diff(y,v),Diff(z,v)])=
matrix(3,3,[i,j,k,diff(x,u),diff(y,u),diff(z,u),diff(x,v),diff(y,v),diff(z,v)]);m:=rhs(%);
#定义偏导数矩阵m,其目的,是计算球面CS的切平面法向量
> det(m); #矩阵m求值
> mn:=simplify(%); #表达式化简
> A:=coeff(mn,i); #提取i项系数
> B:=coeff(mn,j); #提取j项系数
> C:=coeff(mn,k); #提取k项系数,[A,B,C]构成切平面法向量
>Int(Int(V[1]*A+V[2]*B+V[3]*C,u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
# 向量场V与切平面法向量[A,B,C]的空间点积在参数u,v取值范围内积分
> value(%);
> evalf(%);
[P388-389] [3]
E.通用数学分析教材中,球体空间区域数量场[三元函数]三重积分[3]:
> restart;
> with(plots):with(linalg):
> CS:=[sin(u)*cos(v),sin(u)*sin(v),cos(u)]; #定义参数球面CS
> rgu:=[0,Pi];
> rgv:=[0,2*Pi];
>plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],numpoints=2000);g1:=%:
图3 [引言部分] 参数球面
> M3VF:=x^2-y*z; #定义积分数量场[三元函数]M3VF
> rgx:=[-1,1];
> rgy:=[-1,1];
> rgz:=[-1,1];
> g2:=implicitplot3d(M3VF,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],
z=rgz[1]..rgz[2],style=wireframe,numpoints=5000,color=cyan):
> display(g1,g2);
图4 [引言部分] 球体空间区域和积分数量场[三元函数]
> x:=r*CS[1]:y:=r*CS[2]:z:=r*CS[3]:
#通乘以r,将x,y,z轴方向上的球面面元系数转化为x,y,z轴方向上球体体元系数
>matrix(3,3,[Diff(x,r),Diff(x,u),Diff(x,v),Diff(y,r),Diff(y,u),Diff(y,v),Diff(z,r),Diff(z,u),Diff(z,v)])=
matrix(3,3,[diff(x,r),diff(x,u),diff(x,v),diff(y,r),diff(y,u),diff(y,v),diff(z,r),diff(z,u),diff(z,v)]);m:=rhs(%);
#定义矩阵m,目的是获取球体体元系数的一般表达式
> det(m);
> J:=simplify(%); # 球体体元系数J
>Int(Int(Int(M3VF*J,r=0..1),u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
# 数量场[三元函数]与球体体元的乘积在参数r,u,v取值范围内积分
> value(%);
> evalf(%);
[P291-294,P312-313][3]
F.通用数学分析教材中,极坐标系数量场[二元函数]闭合平面区域二重积分:
> restart;
> with(plots):with(linalg):
> CO:=[cos(t),sin(t)]; # 定义参数圆弧CO
> rgt:=[0,2*Pi];
> plot([CO[1],CO[2],t=rgt[1]..rgt[2]],color=blue);g1:=%:
图5 [引言部分] 参数圆弧
> M2VF:=(x-y)^2/2+x/2-y/3; #定义积分数量场[二元函数]M2VF
> rgx:=[-1,1];
> rgy:=[-1,1];
>g2:=implicitplot(M2VF,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],color=red,thickness=1,numpoints=3000): # 积分数量场[二元函数]M2VF等值线作图
> display(g1,g2); #图形合并
图6 [引言部分] 参数圆弧[圈围平面闭合区域]与数量场[二元函数]等值面
> COc:=subs(t=u,CO); #将参数圆CO表达式中的符号t换为u
> x:=r*COc[1];y:=r*COc[2];
#通乘以r,将x,y轴方向上的圆弧微元系数转化为x,y轴方向上的圆面微元系数
> matrix(2,2,[Diff(x,r),Diff(x,u),Diff(y,r),Diff(y,u)])=
matrix(2,2,[diff(x,r),diff(x,u),diff(y,r),diff(y,u)]);m:=rhs(%);
> det(m);
> J:=simplify(%); # 极坐标系平面面元系数J
>Int(Int(M2VF*J,r=0..1),u=rgt[1]..rgt[2]);
# 数量场[二元函数]M2VF与极坐标系平面面元的乘积在参数r,u取值范围内积分
> value(%);
> evalf(%);
[P249-251][3]
通用数学分析教材存在下列问题:
第一, 在球面坐标系内, 向量场闭合曲面积分与数量场[三元函数]闭合空间区域三重积分彼此孤立, 没有通过Ostrogradskii-Gauss公式有机联系起来,并且两者的计算结果不能相互验证;
第二, 向量场闭合曲面积分与数量场[三元函数]闭合空间区域三重积分局限于柱面坐标系和球面坐标系,没有扩展到自由参数曲面坐标系;
第三, 在极坐标系内, 向量场环路积分与数量场[二元函数]闭合平面区域二重积分彼此孤立, 没有通过Green公式有机联系起来,并且两者的计算结果也不能相互验证;
第四, 数量场[二元函数]闭合平面区域二重积分局限于极坐标系, 没有扩展到自由平面坐标系.
1. 自由平面坐标系/自由参数曲面坐标系中的
Green,Ostrogradskii-Gauss,Stokes公式
1.1 Stokes公式的直接计算例证
Stokes公式表明,向量场V在某一开放曲面CS上的闭合曲线边界CL上的环路曲线积分等于向量场V的旋度cV在曲面CS上的第二型曲面积分.
> restart; #内存清空 [Maple计算/作图格式,以后相同[4]]
> with(plots):with(linalg): #加载绘图工具库和线性代数分析库
> CS:=[cos(u)+sin(5*v)/5,sin(v),sin(u-v)+cos(3*u)/3];
#定义任意积分曲面CS表达式
> rgu:=[0,Pi/2];
> rgv:=[0,2*Pi]; #定义参数u,v取值范围
>Plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],numpoints=2000);g1:=%: #参数曲面CS作图
图1 任意参数曲面[非闭合]
> CL:=[sin(5*t)/5,sin(t),cos(t)]; #定义闭合曲线CL表达式
> rgt:=[0,2*Pi]; #定义闭合曲线CL表达式参数t的取值范围
>spacecurve(CL,t=rgt[1]..rgt[2],thickness=2,color=red):g2:=%: #闭合曲线CL作图,其结果赋值g2,待用
> V:=[x*z,x+y*z,(x/3-y/2)^3]; #定义向量场V表达式
> rgx:=[-1,2];
> rgy:=[-3/2,3/2];
> rgz:=[-3/2,3/2]; #定义向量场V的空间作图范围
>g3:=fieldplot3d(V,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],arrows=SLIM,color=red,thickness=1,grid=[6,6,6]): #向量场V作图,其结果赋值g3,待用
> cV:=curl(V,[x,y,z]);
#计算向量场V的旋度cV
>g4:=fieldplot3d(cV,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],arrows=SLIM,color=blue,thickness=1,grid=[6,6,6]): #旋度cV作图,其结果赋值g4,待用
> display(g1,g2,g3,g4); #合并图形
图2 任意参数曲面[非闭合]及其边界线 积分向量场及其旋度
> x:=CL[1]:y:=CL[2]:z:=CL[3]: #将闭合曲线CL的参数表达式赋值于变量x,y,z
>Int(V[1]*Diff(x,t)+V[2]*Diff(y,t)+V[3]*Diff(z,t),t=rgt[1]..rgt[2]);#向量场V对闭合曲线cL的环路曲线积分
#根据Stokes公式,其积分值应该等于向量场V的旋度cV在曲面CS上的第二型曲面积分
> value(%);
> x:='x':y:='y':z:='z': #变量x,y,z复位
> x:=CS[1]:y:=CS[2]:z:=CS[3]:
#将开放曲面CS的参数表达式赋值于变量x,y,z
>matrix(3,3,[i,j,k,Diff(x,u),Diff(y,u),Diff(z,u),Diff(x,v),Diff(y,v),Diff(z,v)])=
matrix(3,3,[i,j,k,diff(x,u),diff(y,u),diff(z,u),diff(x,v),diff(y,v),diff(z,v)]);m:=rhs(%);
#定义偏导数矩阵m,其目的,是求曲面CS的切平面法向量
> det(m); #矩阵m求值
> mn:=simplify(%); #表达式化简
> A:=coeff(mn,i); #提取i项系数
> B:=coeff(mn,j); #提取j项系数
> C:=coeff(mn,k); #提取k项系数;[A,B,C]构成切平面法向量
>Int(Int(cV[1]*A+cV[2]*B+cV[3]*C,u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
#旋度cV与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分
> value(%);
其结果,正好等于前面的向量场V对闭合曲线cL的环路曲线积分值
[任意参数曲面坐标中Stokes公式的数值积分例证及反例略]
1.2 Ostrogradskii-Gauss公式的直接计算例证
Ostrogradskii-Gauss公式表明,向量场V在某一闭合曲面CS上的曲面积分等于向量场V的散度diV在闭合曲面CS所圈围的空间区域中的三重积分.
> restart;
> with(plots):with(linalg):
Ø CS:=[2*sin(u)*cos(v)+sin(5*u)/5,2*sin(u)*sin(v),cos(u)+sin(5*v)/5+sin(2*u)]; #定义曲面CS
> rgu:=[0,Pi];
> rgv:=[0,2*Pi];
>plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],numpoints=3000);g1:=%:
图3 任意参数曲面[闭合]
> V:=[x*y,x-y*z,z^3]; #定义任意空间向量场V
> rgx:=[-2,2];
> rgy:=[-2,2];
> rgz:=[-2,2];
>g2:=fieldplot3d(V,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],arrows=SLIM):
> diverge(V,[x,y,z]);# 计算空间向量场V的散度Div[为一三元函数]
> diV:=%;
>g3:=implicitplot3d(diV,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],style=wireframe,color=cyan):
#散度[三元函数]Div等值面作图
> display(g1,g2,g3);
图4 任意参数曲面[闭合] 积分向量场及其散度等值面
> x:=CS[1]:y:=CS[2]:z:=CS[3]:
>matrix(3,3,[i,j,k,Diff(x,u),Diff(y,u),Diff(z,u),Diff(x,v),Diff(y,v),Diff(z,v)])=
matrix(3,3,[i,j,k,diff(x,u),diff(y,u),diff(z,u),diff(x,v),diff(y,v),diff(z,v)]);m1:=rhs(%);
> det(m1);
> mn:=simplify(%);
> A:=coeff(mn,i);
> B:=coeff(mn,j);
> C:=coeff(mn,k);
>Int(Int(V[1]*A+V[2]*B+V[3]*C,u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
#空间向量场V与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分
> value(%);
> evalf(%);
> x:='x':y:='y':z:='z':
> x:=r*CS[1]:y:=r*CS[2]:z:=r*CS[3]:
#通乘以r,将x,y,z轴方向上的面积微元系数转化为x,y,z轴方向上的体积微元系数
>matrix(3,3,[Diff(x,r),Diff(x,u),Diff(x,v),Diff(y,r),Diff(y,u),Diff(y,v),Diff(z,r),Diff(z,u),Diff(z,v)])=
matrix(3,3,[diff(x,r),diff(x,u),diff(x,v),diff(y,r),diff(y,u),diff(y,v),diff(z,r),diff(z,u),diff(z,v)]);m2:=rhs(%);
#定义矩阵m2,目的是获取空间体积微元系数的一般表达式
> det(m2);
> J:=simplify(%); #空间体积微元系数的一般表达式
>Int(Int(Int(diV*J,r=0..1),u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
> #散度diV与空间体积微元的乘积在变量r,u,v取值范围内的三重积分
> value(%);
> evalf(%);
正好等于前面的闭合曲面积分值
[任意参数曲面坐标中Ostrogradskii-Gauss公式的数值积分例证及反例略]
1.3 Green公式的直接计算例证
Green公式表明,平面向量场在某一平面闭合曲线上的环路积分,等于该平面向量场按特定的方式求导以后所得的数量函数(二元函数)在该闭合曲线所圈围的平面区域内的二重积分.
> restart;
> with(plots):with(linalg):
>CO:=[cos(t-1)+sin(5*t-1)/5,-t*sin(t)]; #定义平面闭合曲线CO
> rgt:=[0,2*Pi];
>plot([CO[1],CO[2],t=rgt[1]..rgt[2]],color=blue,numpoints=1000);g1:=%:
图5 任意参数曲线[闭合]
> PV:=[-x^2+y^3,(x+y)^2]; #定义平面向量场PV
> rgx:=[-7/2,7/2];
> rgy:=[-2,5]; #定义平面向量场PV作图范围
>g2:=fieldplot(PV,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],arrows=SLIM,color=blue): #平面向量场PV作图
>Diff(PV[2],x)-Diff(PV[1],y); #对平面向量场PV求导,其结果为二元(数量)函数dPV
> dPV:=value(%);
>g3:=implicitplot(dPV,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],color=red,thickness=1,numpoints=3000):
#二元(数量)函数dPV作图
>display(g1,g2,g3); #平面闭合曲线CO,平面向量场PV,二元函数dPV,三图合并
图6 任意参数曲线[闭合] 积分向量场及其微分函数等值线
>plot3d(dPV,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2]);
#二元函数dPV的空间直观
图7 积分向量场的微分函数[二元函数]的空间直观
> x:=CO[1];y:=CO[2];
>Int(PV[1]*Diff(x,t)+PV[2]*Diff(y,t),t=rgt[1]..rgt[2]); #平面向量场PV在平面闭合曲线CO上的环路积分
> value(%);
> evalf(%);
> x:='x':y:='y':
> COc:=subs(t=u,CO); #将曲线CO表达式中的符号t换为u
> x:=r*COc[1];y:=r*COc[2];
#通乘以r,将x,y轴方向上的曲线微元系数转化为x,y轴方向上的面积微元系数
>matrix(2,2,[Diff(x,r),Diff(x,u),Diff(y,r),Diff(y,u)])=
matrix(2,2,[diff(x,r),diff(x,u),diff(y,r),diff(y,u)]);m:=rhs(%);
#定义矩阵m,目的是获取平面面积微元系数的一般表达式
> det(m);
> J:=simplify(%); #平面面积微元系数的一般表达式
> Int(Int(dPV*J,r=0..1),u=rgt[1]..rgt[2]);
#二元函数dPV与平面面积微元的乘积在变量r,u取值范围内的二重积分
> value(%);
> evalf(%);
正好等于前面的平面闭合曲线积分值
[任意平面坐标中Green公式的数值积分例证及反例略]
2.从极坐标系.球面坐标系到任意坐标系
--基于Green、Ostrogradskii-Gauss和Stokes公式的算法推演
2.1 空间向量场任意参数曲面积分的实现
如果第一部分Stokes公式和Ostrogradskii-Gauss公式关于向量场曲面积分的计算方法成立,那么我们抛开'旋度cV与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分',而换上'任一向量场V与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分'--这样的空间向量场曲面积分计算方法也同时成立.
> restart;
> with(plots):with(linalg):
>CS:=[v*(5/6+cos(u)/2)*cos(v),v*(5/6+cos(u)/2)*sin(v),v*sin(u)/2]; #定义积分曲面CS
> rgu:=[0,2*Pi];
> rgv:=[0,5*Pi];
>plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],numpoints=5000,color=pink);g1:=%:
图8 任意参数曲面
> V:=[-x,x*y,z^2]; #定义任意空间向量场V
> rgx:=[-20,20];
> rgy:=[-20,20];
> rgz:=[-20,20];
>g2:=fieldplot3d(V,x=rgx[1]..rgx[2],y=rgy[1]..rgy[2],z=rgz[1]..rgz[2],arrows=SLIM):
> display(g1,g2);
图9 任意参数曲面及积分向量场
> x:=CS[1]:y:=CS[2]:z:=CS[3]:
>matrix(3,3,[i,j,k,Diff(x,u),Diff(y,u),Diff(z,u),Diff(x,v),Diff(y,v),Diff(z,v)])=
matrix(3,3,[i,j,k,diff(x,u),diff(y,u),diff(z,u),diff(x,v),diff(y,v),diff(z,v)]);m:=rhs(%);
> det(m);
> mn:=simplify(%);
> A:=coeff(mn,i);
> B:=coeff(mn,j);
> C:=coeff(mn,k);
>Int(Int(V[1]*A+V[2]*B+V[3]*C,u=rgu[1]..rgu[2]),v=rgv[1]..rgv[2]);
#任意空间向量场V与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分
> value(%);
> evalf(%);
2.2空间数量场[三元函数]任意参数曲面积分的实现
如果第一部分Stokes公式和Ostrogradskii-Gauss公式关于向量场曲面积分的计算方法成立,关于'任一向量场V与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分'的第二型曲面积分方法也成立,根据第一型曲面积分(即数量场曲面积分)与第二型曲面积分{即向量场曲面积分}之间的对应关系,我们抛开'任一向量场V与曲面CS的切平面法向量[A,B,C]的空间点积关于曲面参数u,v的积分',而换上'任一数量场[三元函数]与曲面CS的切平面法向量的模sqrt(A^2+B^2+C^2)的数量积关于曲面参数u,v的积分',这样的空间数量场曲面积分计算方法也同时成立。
> restart;
> with(plots):with(linalg):
>CS:=[1/u+sin(u)+cos(u/2),sin(u/2)*cos(v),sin(u/2)*sin(v)]; #定义积分曲面CS
> rgu:=[2/7,2*Pi];
> rgv:=[0,2*Pi];
>plot3d(CS,u=rgu[1]..rgu[2],v=rgv[1]..rgv[2],color=cyan,numpoints=2000);g1:=%:
图10 任意参数曲面
> M3VF:=sin(2*x+2*y)-z-1; #定义任一数量场[三元函数]M3VF
展开阅读全文