本文通过引进体积坐标,结合数值积分,给出了统一求空间三角形上的数值积分方法。该方法方便快捷,易于程序化。最后本文给出了用该方法求任意函数数值积分的MATLAB程序。 This paper presents a method to solve numerical integration on spatial triangle by combing volume coordinates and numerical integration. This method is easy and efficient and can be programed. Finally, this paper gives the MATLAB program for any function to solve the numerical integration.
李豪
贵州师范大学,贵州 贵阳
收稿日期:2017年9月2日;录用日期:2017年9月16日;发布日期:2017年9月21日
本文通过引进体积坐标,结合数值积分,给出了统一求空间三角形上的数值积分方法。该方法方便快捷,易于程序化。最后本文给出了用该方法求任意函数数值积分的MATLAB程序。
关键词 :体积坐标,空间三角形,数值积分,MATLAB
Copyright © 2017 by author and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
在用有限元等数值方法计算求解工程中的数学问题时,我们通常会采用四面体(每个四面体我们称之为单元)对空间区域进行剖分。不可避免的,比如在计算残差项的时候,我们通常需要在四面体的一个面(这个面是一个空间三角形)上进行积分。理论上,我们可用第一型曲面积分公式 [
∬ S f ( x , y , z ) d S = ∬ D f ( x , y , z ( x , y ) ) 1 + z x 2 + z y 2 d x d y (1)
进行计算。但是,首先,四面体的各个面的大小、形状不一,统一求积分必然是一件困难的事情。其次被积函数有可能比较复杂,求得积分公式难以求得准确解,迫使我们不得不转向数值积分。最后,若用数值积分,将Oxy平面上单位三角形上的积分节点转化为空间三角形上的积分节点也不是件容易的事。
本文提供的方法,很好的解决了上述三个问题。使得我们在实际应用中能够快捷方便的求解任意一个函数在任意一个空间三角形上的积分。
我们设一个空间三角形ABC的三个顶点在空间直角坐标系下的坐标为 A ( x 1 , y 1 , z 1 ) , B ( x 2 , y 2 , z 2 ) , C ( x 3 , y 3 , z 3 ) ,为了引进体积坐标,我们需要引入不在 Δ A B C 所在平面的第四个点 D ( x 4 , y 4 , z 4 ) ,进而引入面积坐标 [
p 1 ( x , y , z ) = [ x y z 1 x 2 y 2 z 2 1 x 3 y 3 z 3 1 x 4 y 4 z 4 1 ] / V , p 2 ( x , y , z ) = [ x 1 y 1 z 1 1 x y z 1 x 3 y 3 z 3 1 x 4 y 4 z 4 1 ] / V ,
p 3 ( x , y , z ) = [ x 1 y 1 z 1 1 x 2 y 2 z 2 1 x y z 1 x 4 y 4 z 4 1 ] / V , p 4 ( x , y , z ) = [ x 1 y 1 z 1 1 x 2 y 2 z 2 1 x 3 y 3 z 3 1 x y z 1 ] / V .
其中 为四面体ABCD的体积。
因此,对于空间直角坐标系中任意一点 p 的坐标 ( x , y , z ) ,可以用体积坐标表示如下:
x = x 1 p 1 + x 2 p 2 + x 3 p 3 + x 4 p 4 , y = y 1 p 1 + y 2 p 2 + y 3 p 3 + y 4 p 4 , z = z 1 p 1 + z 2 p 2 + z 3 p 3 + z 4 p 4 . (2)
性质1 [
性质2 [
设函数 u = u ( x , y , z ) 在空间三角形ABC有定义。由性质1知, p 4 在∆ABC所在平面恒为零,所以 p 1 + p 2 + p 3 = 1 。所以Oxy平面上直角边为1的等腰直角三角形上的积分节点 ( p 1 , p 2 ) 容易转化为其上的体积积分节点 ( p 1 , p 2 , 1 − p 1 − p 2 ) ,进而通过公式(2)映射成一般单元上的积分节点。
设 ( p 1 i , p 2 i , p 3 i ) , i = 1 , 2 , ⋯ , n 是一组积分节点,相应积分节点的权记为 w i ,于是由公式(2)我们可以求得一般空间三角形上的积分节点 ( x 1 i , y 2 i , z 3 i ) , i = 1 , 2 , ⋯ , n 。于是
∬ Δ A B C u ( x , y , z ) ≈ S Δ A B C ∑ i n f ( x 1 i , y 2 i , z 3 i ) (3)
其中 S Δ A B C 是∆ABC的面积。
Step 1:首先选择Oxy平面上单位三角形上的一组积分节点 ( p 1 i , p 2 i ) , i = 1 , 2 , ⋯ , n 和相应的权 w i ,计算相应体积坐标积分节点 ( p 1 i , p 2 i , 1 − p 1 i − p 2 i ) , i = 1 , 2 , ⋯ , n 。
Step 2:由公式(2)计算空间三角形上的积分节点 ( x 1 i , y 2 i , z 3 i ) , i = 1 , 2 , ⋯ , n 。
Step 3:用公式(3)计算积分。
例1: ∬ S x y z d s , S 为平面 x + y + z = 1 在第一卦限的部分。
解法一:用公式(1)求解
z = 1 − x − y , z x = − 1 , z y = − 1 , d s = 3 d x d y
所以
∬ S x y z d s = ∬ D x y x y ( 1 − x − y ) 3 d x d y = ∫ 0 1 d x ∫ 0 1 − x 3 x y ( 1 − x − y ) d y = 3 120 .
解法二:本文参考 [
程序输入:node=[1,0,0;0,1,0;0,0,1];
elem=[1,2,3];
u='x*y*z';
程序调用:s=example(node,elem,u)
程序输出:s =0.014433756729741
贵州省科学技术基金项目《板振动问题的非协调有限元自适应算法》(项目合同编号:黔科合LH字[
李豪. 空间三角形上的数值积分 The Numerical Integration on Spatial Triangle[J]. 应用数学进展, 2017, 06(06): 752-755. http://dx.doi.org/10.12677/AAM.2017.66090
https://doi.org/10.1002/nme.1620210612