青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE Gauss Integration

Posted on 2014-09-11 21:52 eryar 閱讀(2849) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE Gauss Integration

eryar@163.com

Abstract. Numerical integration is the approximate computation of an integral using numerical techniques. The numerical computation of an integral is sometimes called quadrature. The most straightforward numerical integration technique uses the Newton-Cotes formulas(also called quadrature formulas), which approximate a function tabulated sequence of regularly spaced intervals by various degree polynomials. If the functions are known analytically instead of being tabulated at equally spaced intervals, the best numerical method of integrations is called Gauss Integration(Gaussian quadrature). By picking the abscissas at which to evaluate the function, Gaussian quadrature produces the most accurate approximations possible. In OpenCASCADE math package it implement the Gauss-Legendre integration. So I will focus on the usage of the class in OpenCASCADE.

Key Words. OpenCASCADE, Gauss Integration, Gauss-Legendre, Numerical Analysis

1. Introduction

在科學和工程計算問題中,經常要計算一些定積分或微分,它們的精確值無法算出或計算量太大,只能用數值的方法給出具有指定誤差限的近似值。最直觀的數值積分方法有Newton-Cotes,其將積分區間等分之,并取分點為積分節點。這種做法雖然簡化了計算,但卻降低了所得公式的代數精度。

Gauss型求積公式是一種高精度的數值積分公式。在求積節點數相同的情況下,即計算工作量相近的情況下,利用Gauss型求積公式往往可以獲得準確程序較高的積分結果,只是它在不等距的無理數上計算被積函數。

OpenCASCADE的math包中實現了Gauss-Legendre積分算法。本文主要介紹其使用方法,進而對其應用進行理解。

2. The Gauss-Legendre Integration

Gauss型求積公式是數值穩定的,且對有限閉區間上的連續函數,Gauss求積的數值隨節點數目的增加而收斂到準確積分值。

常用的Gauss型求積公式有Gauss-Legendre求積公式,Gauss-Chebyshev求積公式,Gauss-Laguerre求積公式和Gauss-Hermite求積公式等。

對于一般區間[a, b]上的Gauss型求積公式,可通過變量變換,由Gauss-Legendre求積公式得到:

wps_clip_image-12252其中:

wps_clip_image-28519

OpenCASCADE中對應的類有math_GaussSingleIntegration,主要實現的函數為Perform(),計算過程如下:

v 查表求得Gauss點及求積系數;

//Recuperation des points de Gauss dans le fichier GaussPoints.
  math::GaussPoints(Order,GaussP);
  math::GaussWeights(Order,GaussW);

v 根據Gauss-Legendre求積公式計算;

 

// Changement de variable pour la mise a l'echelle [Lower, Upper] :
  xm = 0.5*(Upper + Lower);
  xr 
= 0.5*(Upper - Lower);
  Val 
= 0.;

  Standard_Integer ind 
= Order/2, ind1 = (Order+1)/2;
  
if(ind1 > ind) { // odder case
    Ok1 = F.Value(xm, Val);
    
if (!Ok1) return;
    Val 
*= GaussW(ind1);
  }
// Sommation sur tous les points de Gauss: avec utilisation de la symetrie.
  for (j = 1; j <= ind; j++) {
    dx 
= xr*GaussP(j);
    Ok1 
= F.Value(xm-dx, F1);
    
if(!Ok1) return;
    Ok1 
= F.Value(xm+dx, F2);
    
if(!Ok1) return;
    
// Multiplication par les poids de Gauss.
    Standard_Real FT = F1+F2;
    Val 
+= GaussW(j)*FT;  
  }
  
// Mise a l'echelle de l'intervalle [Lower, Upper]
  Val *= xr;

對比Gauss-Legendre求積公式來理解上述代碼還是比較清晰的。下面給出使用此類的一個具體實例:

 

/*
*    Copyright (c) 2014 eryar All Rights Reserved.
*
*        File    : Main.cpp
*        Author  : eryar@163.com
*        Date    : 2014-09-11 20:46
*        Version : 1.0v
*
*    Description : Demo for Gauss-Legendre Integration usage.
*
*      Key words : OpenCascade, Gauss-Legendre Integration
*/

#define WNT
#include 
<math_Function.hxx>
#include 
<math_GaussSingleIntegration.hxx>

#pragma comment(lib, 
"TKernel.lib")
#pragma comment(lib, 
"TKMath.lib")

class Test_GaussFunction : public math_Function
{
public:
    
virtual Standard_Boolean Value(const Standard_Real x, Standard_Real &y)
    {
        y 
= x;

        
return Standard_True;
    }

private:
};

void TestGaussIntegration(void)
{
    Test_GaussFunction aFunction;
    math_GaussSingleIntegration aSolver(aFunction, 
11010);

    std::cout 
<< aSolver << std::endl;
}

int main(int argc, char* argv[])
{
    TestGaussIntegration();

    
return 0;
}

主要是從math_Function派生一個類來在虛函數Value()中重定義求積函數即可。上述實例中計算的是如下積分:

wps_clip_image-4533

計算結果如下圖所示:

wps_clip_image-15082

Figure 2.1 Gauss-Legendre Integtation Result

3. Application

由高等數學知識可知,積分的應用主要用于計算圖形面積,體積及曲線的弧長,功等。

積分在OpenCASCADE中的主要應用有計算曲線長度,曲面面積及實體的體積等。如下圖所示:

wps_clip_image-13853

Figure 3.1 Compute Area of a Surface

示例代碼如下所示:

TopoDS_Shape S = BRepBuilderAPI_MakeFace(BSS, Precision::Confusion()).Face();

GProp_GProps System;
BRepGProp::SurfaceProperties(S,System);
gp_Pnt G 
= System.CentreOfMass ();
Standard_Real Area 
= System.Mass();
gp_Mat I 
= System.MatrixOfInertia();


 


4. Conclusion

OpenCASCADE中實現的Gauss-Legendre求積算法,由于是查表求得Gauss點及求積系數,所以計算速度快。唯一不足是對高斯點數有限制。

綜上所述,可知數值計算在OpenCASCADE中重要作用。一個TKMath庫相當于實現了一本《數值分析》課本中的大部分內容。所以有興趣的朋友可結合《數值分析》或《計算方法》之類的書籍,來對OpenCASCADE的數學庫TKMath進行理論聯系實際的深入理解。

5. References

1. Wolfram MathWorld, Numerical Integration, 

http://mathworld.wolfram.com/NumericalIntegration.html

2. 易大義,沈云寶,李有法編. 計算方法. 浙江大學出版社. 2002

3. 易大義,陳道琦編. 數值分析引論. 浙江大學出版社. 1998

4. 李慶楊,王能超,易大義.數值分析.華中理工大學出版社. 1986

5. 同濟大學數學教研室. 高等數學(第四版). 高等教育出版社. 1996

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女在线一区| 欧美人与禽性xxxxx杂性| 乱人伦精品视频在线观看| 亚洲一区在线看| 夜夜爽www精品| 亚洲免费视频中文字幕| 欧美在线观看视频一区二区三区| 欧美一级艳片视频免费观看| 欧美中文在线观看| 久久免费高清| 91久久精品一区二区别| 亚洲黄色影片| 亚洲午夜在线| 久久精品午夜| 欧美日韩免费观看中文| 国产亚洲欧美日韩日本| 亚洲啪啪91| 性欧美videos另类喷潮| 欧美成人a∨高清免费观看| 日韩网站在线看片你懂的| 性欧美1819性猛交| 欧美精品观看| 狠狠色综合色综合网络| 在线综合+亚洲+欧美中文字幕| 久久精品91| 日韩视频在线观看国产| 久久久久久91香蕉国产| 国产精品分类| 99精品热视频| 裸体素人女欧美日韩| 一区二区三区成人精品| 久久久噜噜噜久久| 国产精品国产自产拍高清av| 亚洲国产精品国自产拍av秋霞| 亚洲欧美日韩网| 亚洲国产老妈| 久久先锋资源| 国内精品视频在线播放| 在线亚洲一区观看| 欧美国产日韩二区| 欧美亚洲在线观看| 国产精品福利在线观看网址| 亚洲日本电影在线| 农村妇女精品| 久久久久久9| 国产亚洲精品自拍| 小黄鸭精品密入口导航| 99精品热视频只有精品10| 欧美成人免费大片| 亚洲国产精品久久久久婷婷884| 欧美一级久久久| 中文国产亚洲喷潮| 欧美日韩高清一区| 亚洲激情电影在线| 欧美激情偷拍| 欧美插天视频在线播放| 韩国一区二区在线观看| 久久久久久久久久久一区| 亚洲国产激情| 亚洲国产美国国产综合一区二区| 亚洲作爱视频| 亚洲精品欧洲精品| 欧美日韩高清一区| 亚洲深夜福利在线| 国产精品99久久99久久久二8| 欧美日韩在线观看一区二区| 亚洲作爱视频| 国产精品99久久久久久久久| 欧美日韩不卡合集视频| 在线视频免费在线观看一区二区| 亚洲国产精品久久久久秋霞影院| 欧美国产亚洲精品久久久8v| 99re6热在线精品视频播放速度| 亚洲电影免费在线 | 久久久免费精品| 午夜伦理片一区| 黄色精品一区| 亚洲激情专区| 欧美三日本三级少妇三99| 午夜视频久久久| 久久www免费人成看片高清| 亚洲成色最大综合在线| 亚洲日产国产精品| 国产欧美91| 亚洲电影有码| 国产精品亚洲综合天堂夜夜| 老色批av在线精品| 欧美国产一区视频在线观看| 亚洲欧美久久久| 久久久久在线| 亚洲一区精彩视频| 久久全国免费视频| 亚洲视频日本| 久久久久综合| 亚洲欧美日韩天堂一区二区| 久久久久久穴| 亚洲欧美电影在线观看| 久久人人97超碰国产公开结果| 一本色道久久精品| 久久精品网址| 性欧美长视频| 欧美理论电影网| 久久深夜福利| 欧美日韩午夜在线视频| 久久伊人精品天天| 国产精品资源在线观看| 亚洲黄色大片| 在线国产精品一区| 亚洲性感激情| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美日韩一区在线| 免费视频亚洲| 国产美女精品一区二区三区| 亚洲二区视频在线| 狠狠干综合网| 性久久久久久| 午夜精品视频在线观看| 欧美成人免费在线| 久久久欧美一区二区| 亚洲欧美在线另类| 欧美日韩综合网| 日韩一级大片在线| 日韩亚洲在线观看| 免费在线一区二区| 免费精品视频| 在线 亚洲欧美在线综合一区| 亚洲一区二区三区午夜| 亚洲小说欧美另类社区| 欧美日韩国产成人在线观看| 亚洲第一伊人| 亚洲欧洲在线一区| 欧美成年视频| 91久久精品国产91性色tv| 亚洲福利电影| 久久亚洲综合网| 欧美粗暴jizz性欧美20| 影音先锋中文字幕一区| 久久福利毛片| 欧美xx69| 亚洲欧洲综合| 欧美日本韩国在线| 一区二区福利| 久久av一区二区三区亚洲| 国产日韩欧美| 久久频这里精品99香蕉| 亚洲高清免费在线| 亚洲视频免费观看| 国产精品免费一区二区三区在线观看 | 精品成人在线视频| 你懂的视频一区二区| 亚洲精品三级| 亚洲欧美日韩在线| 国产亚洲网站| 免费欧美日韩国产三级电影| 亚洲国产成人久久综合| 一区二区三区四区五区在线 | 欧美jizzhd精品欧美巨大免费| 美女视频一区免费观看| 亚洲人成人一区二区在线观看| 欧美久久九九| 亚洲欧美日韩一区| 亚洲福利视频一区二区| 亚洲综合色在线| 黑人巨大精品欧美一区二区小视频 | 久久精品人人做人人爽电影蜜月| 国产专区综合网| 欧美黄色成人网| 亚洲欧美电影在线观看| 免费观看在线综合| 亚洲午夜精品在线| 影音先锋久久| 国产精品久久久久免费a∨大胸 | 国产精品视频久久| 久久久噜噜噜久久久| 亚洲精品视频啊美女在线直播| 午夜在线精品偷拍| 最新热久久免费视频| 国产精品久久久久久久午夜 | 国产综合色产| 亚洲国产乱码最新视频 | 永久免费视频成人| 欧美日韩一区二区三| 久久成人精品视频| 一区二区国产精品| 你懂的网址国产 欧美| 午夜精品理论片| 亚洲精选在线观看| 韩国美女久久| 国产精品综合色区在线观看| 欧美精品激情在线观看| 久久久久久97三级| 亚洲欧美激情视频| av成人毛片| 亚洲人成在线观看一区二区| 久久久精品午夜少妇| 亚洲欧美日本伦理| 亚洲一区二区三区在线| 99精品国产高清一区二区| 亚洲高清视频一区| 禁断一区二区三区在线 |