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

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 閱讀(2850) 評論(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

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

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

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

2. The Gauss-Legendre Integration

Gauss型求積公式是數(shù)值穩(wěn)定的,且對有限閉區(qū)間上的連續(xù)函數(shù),Gauss求積的數(shù)值隨節(jié)點數(shù)目的增加而收斂到準確積分值。

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

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

wps_clip_image-12252其中:

wps_clip_image-28519

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

v 查表求得Gauss點及求積系數(shù);

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

v 根據(jù)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派生一個類來在虛函數(shù)Value()中重定義求積函數(shù)即可。上述實例中計算的是如下積分:

wps_clip_image-4533

計算結果如下圖所示:

wps_clip_image-15082

Figure 2.1 Gauss-Legendre Integtation Result

3. Application

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

積分在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中實現(xiàn)的Gauss-Legendre求積算法,由于是查表求得Gauss點及求積系數(shù),所以計算速度快。唯一不足是對高斯點數(shù)有限制。

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

5. References

1. Wolfram MathWorld, Numerical Integration, 

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

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

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

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

5. 同濟大學數(shù)學教研室. 高等數(shù)學(第四版). 高等教育出版社. 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>
            久久久久久久综合色一本| 亚洲黄色小视频| 久久综合福利| 亚洲一区二区日本| 国产精品高精视频免费| 欧美激情亚洲另类| 亚洲国产日韩综合一区| 欧美~级网站不卡| 新狼窝色av性久久久久久| 亚洲视频第一页| 欧美中文在线视频| 久久九九全国免费精品观看| 性感少妇一区| 欧美高清你懂得| 免费国产一区二区| 农村妇女精品| 这里只有精品视频| 亚洲综合第一页| 一区二区激情视频| 亚洲欧美日韩在线| 亚洲在线视频网站| 日韩视频免费观看| 欧美主播一区二区三区美女 久久精品人 | 亚洲欧美日韩精品| 亚洲欧洲日本专区| 欧美夜福利tv在线| 久久亚洲免费| 很黄很黄激情成人| 亚洲精选一区| 亚洲国产欧美另类丝袜| 99国产精品视频免费观看| 一区二区三区欧美亚洲| 夜夜嗨一区二区三区| 久久久久久久网站| 欧美成人亚洲成人| 亚洲欧美精品suv| 久久久91精品| 欧美日韩免费观看一区| 在线观看一区二区精品视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美亚洲综合网| 欧美xxx成人| 欧美三级视频在线播放| 亚洲国产欧洲综合997久久| 亚洲精品永久免费| 久久久久久久国产| 亚洲精品美女在线观看| 午夜一区二区三区不卡视频| 欧美黄污视频| 国产亚洲精品福利| 国产一区二区剧情av在线| 亚洲男人的天堂在线| 免费不卡在线视频| 欧美伊人久久久久久久久影院| 女女同性精品视频| 国产精品一区二区三区四区五区| 一区二区三区欧美成人| 免费成人av在线看| 亚洲综合日本| 国产女主播视频一区二区| 亚洲激情av| 亚洲一区二区三区777| 亚洲三级影院| 久久在线视频在线| 亚洲第一福利视频| 久久久一本精品99久久精品66| 亚洲狼人综合| 欧美视频一区| 99精品热视频| 亚洲第一精品久久忘忧草社区| 美腿丝袜亚洲色图| 国产主播一区二区三区四区| 亚洲伦理网站| 亚洲激情一区| 欧美激情小视频| 亚洲天堂男人| 艳妇臀荡乳欲伦亚洲一区| 欧美在线观看网站| 国产主播一区| 欧美有码在线视频| 久久精品一区二区三区不卡| 国模大胆一区二区三区| 久久精品国产精品亚洲精品| 亚洲无毛电影| 亚洲精品视频一区| 欧美风情在线观看| 狠狠干综合网| 亚洲国产综合在线| 欧美国产精品劲爆| 亚洲一区二区三区免费视频| 久久久亚洲成人| 久久人体大胆视频| 在线观看欧美| 中文一区在线| 免费日韩av| 快射av在线播放一区| 最新日韩在线| 亚洲精选国产| 极品av少妇一区二区| 欧美高清在线视频| 欧美精品一区二区三| 久久经典综合| 久久野战av| 亚洲美女黄色| 欧美精品一区二区三区在线播放| 一本色道久久综合亚洲91| 99在线|亚洲一区二区| 激情国产一区二区| 欧美激情视频网站| 欧美午夜三级| 亚洲成人在线免费| 亚洲视频网站在线观看| 国产精品香蕉在线观看| 亚洲免费电影在线观看| 亚洲综合色激情五月| 狠狠久久亚洲欧美专区| aaa亚洲精品一二三区| 国产丝袜一区二区| 亚洲大胆av| 国内精品久久国产| 亚洲国产你懂的| 亚洲国产中文字幕在线观看| 国产精品国产福利国产秒拍 | 巨胸喷奶水www久久久免费动漫| 亚洲精品久久久久| 玖玖国产精品视频| 午夜精品一区二区三区四区| 欧美激情亚洲精品| 久久人人爽人人| 欧美日韩国产成人高清视频| 亚洲成人资源网| 国产一级揄自揄精品视频| 久久综合色一综合色88| 国产专区精品视频| 99re66热这里只有精品3直播| 久久精品水蜜桃av综合天堂| 宅男噜噜噜66一区二区66| 久久久久综合一区二区三区| 久久久之久亚州精品露出| 欧美日本韩国一区| 亚洲激情一区二区三区| 亚洲国产99| 久久狠狠婷婷| 欧美jjzz| 激情欧美国产欧美| 久久亚洲精品一区二区| 久久久女女女女999久久| 国产精品美女久久久久久免费| 亚洲高清电影| 亚洲国产专区校园欧美| 久久亚洲国产成人| 久久青青草原一区二区| 国产视频在线观看一区二区三区| 亚洲午夜久久久久久尤物 | 欧美成人免费在线| 在线观看日韩www视频免费 | 91久久久一线二线三线品牌| 欧美成人伊人久久综合网| 免费成人在线观看视频| 午夜精品影院| 一区二区三区久久网| 免费成人网www| 欧美v日韩v国产v| 夜久久久久久| 欧美国产日产韩国视频| 99国产精品视频免费观看一公开| 日韩视频中午一区| 欧美区二区三区| 亚洲欧美色一区| 久久久久久夜| 在线亚洲精品| 国产精品日韩在线一区| 久久久精品久久久久| 亚洲国产精品第一区二区三区| 亚洲国产精品尤物yw在线观看| 欧美日韩三区| 亚洲欧美成人一区二区在线电影| 久久在线免费视频| 亚洲国产欧洲综合997久久| 欧美绝品在线观看成人午夜影视| 午夜精品999| 欧美成人精品不卡视频在线观看| 一区二区三区偷拍| 国产日韩亚洲| 亚洲一区二区三区欧美| 国产亚洲精品久久飘花| 久久久久久久一区二区三区| 夜夜爽av福利精品导航 | 亚洲欧美日韩成人| 亚洲大胆人体在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美激情亚洲国产| 亚洲永久免费观看| 亚洲精品日韩在线观看| 欧美一区二区视频在线| 日韩亚洲不卡在线| 国产午夜久久| 欧美aaa级| 美国三级日本三级久久99| 一区二区三区回区在观看免费视频|