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

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>
            亚洲美女在线视频| 欧美极品aⅴ影院| 久久久免费精品视频| 亚洲专区免费| 欧美一区二区三区在线| 欧美尤物一区| 久久精品国产亚洲aⅴ| 久久久国产精品亚洲一区| 卡通动漫国产精品| 亚洲激情在线| 亚洲精品久久久久久久久| 一区二区高清视频| 欧美亚洲免费电影| 玖玖精品视频| 欧美亚州在线观看| 国产综合久久久久久鬼色| 亚洲电影在线播放| 一区二区三区视频在线观看| 欧美一二三视频| 欧美国产日韩一区二区三区| 99视频一区二区三区| 久久成人免费网| 欧美搞黄网站| 亚洲综合激情| 欧美激情中文字幕一区二区| 国产手机视频一区二区| 久久亚洲免费| 欧美日本精品| 国产综合18久久久久久| 亚洲美女在线看| 久久久午夜视频| 亚洲网址在线| 欧美日韩一区二区高清| 国产日韩欧美一区| 在线亚洲高清视频| 欧美国产视频在线| 欧美一区二区三区在线观看视频| 欧美激情麻豆| 亚洲电影欧美电影有声小说| 欧美主播一区二区三区| 一本久久青青| 欧美久久电影| 亚洲精品日本| 欧美国产国产综合| 久久精品国产在热久久| 国产精品一区二区三区四区| 在线视频欧美精品| 亚洲国产精品久久人人爱蜜臀 | 亚洲韩国青草视频| 久久久久成人精品| 亚洲综合清纯丝袜自拍| 欧美日韩视频第一区| 91久久黄色| 欧美高清视频一区二区| 久久亚洲国产成人| 亚洲国产精品999| 久久五月天婷婷| 欧美一区日韩一区| 国产一区二区福利| 久久成人国产精品| 欧美在线观看视频| 在线观看成人网| 男人的天堂亚洲在线| 久久久亚洲午夜电影| 亚洲成人中文| 91久久久精品| 欧美日韩高清在线| 一区二区三区视频在线看| aa日韩免费精品视频一| 国产精品国色综合久久| 午夜精品久久久久久久久久久久 | 午夜免费日韩视频| 亚洲欧美日韩中文视频| 国产综合色在线| 老鸭窝亚洲一区二区三区| 久久蜜臀精品av| 亚洲精品视频免费| 亚洲视频在线视频| 好吊色欧美一区二区三区视频| 鲁大师成人一区二区三区| 欧美不卡一区| 欧美精品一区二区蜜臀亚洲| 亚洲午夜精品福利| 性一交一乱一区二区洋洋av| 亚洲国产精品国自产拍av秋霞| 亚洲国产视频a| 国产精品美女久久久久av超清 | 久久亚洲风情| 欧美精品一区二区三区蜜臀| 欧美一区二区黄| 久久亚洲国产精品一区二区| 99精品福利视频| 亚洲欧美中文字幕| 亚洲精品黄色| 午夜视频一区在线观看| 亚洲国产精品日韩| 亚洲一区二区三| 亚洲人成网站影音先锋播放| 亚洲欧美一区二区激情| 亚洲精品综合| 久久久精品网| 亚洲免费一级电影| 美女图片一区二区| 久久精品国产久精国产一老狼| 欧美国产一区在线| 久久久久久69| 国产精品毛片一区二区三区 | 久久久成人网| 欧美日韩八区| 欧美大尺度在线| 国产一区二区三区电影在线观看| 99re热这里只有精品免费视频| 亚洲第一天堂av| 久久国产夜色精品鲁鲁99| 亚洲男同1069视频| 欧美午夜精品久久久| 亚洲欧洲日产国码二区| 亚洲电影免费观看高清完整版在线观看| 亚洲一区二区在线| 亚洲欧美国产va在线影院| 欧美激情中文字幕乱码免费| 免费久久精品视频| 国产欧美日韩另类一区| 中国女人久久久| 一区二区免费在线视频| 欧美黄色网络| 欧美国产日韩精品| 狠狠色综合色综合网络| 亚洲欧美日韩在线综合| 午夜亚洲一区| 国产欧美日本| 亚洲欧美日韩一区二区三区在线观看| 国产精品99久久久久久人| 欧美激情一区二区三级高清视频| 欧美激情按摩在线| 亚洲精品久久久蜜桃| 欧美精品18| 日韩视频在线免费观看| 一本一道久久综合狠狠老精东影业| 欧美二区不卡| 一本色道久久88综合亚洲精品ⅰ| 久久人人爽爽爽人久久久| 老司机精品导航| 在线电影欧美日韩一区二区私密| 久久亚洲综合网| 亚洲国产精品成人一区二区| 亚洲伦理一区| 欧美午夜不卡在线观看免费| 亚洲综合精品自拍| 久久久久久9| 91久久久久久| 欧美日韩中文在线| 午夜免费日韩视频| 欧美电影免费观看大全| 亚洲人在线视频| 国产精品久久波多野结衣| 先锋资源久久| 欧美成人午夜激情在线| 亚洲日韩成人| 国产精品日本一区二区 | 在线视频欧美日韩精品| 欧美一二三视频| 亚洲动漫精品| 欧美日韩日本网| 欧美资源在线观看| 最新高清无码专区| 性伦欧美刺激片在线观看| 一区二区三区自拍| 欧美日韩亚洲91| 久久精品亚洲| 亚洲最新在线视频| 美女脱光内衣内裤视频久久网站| 一二三区精品福利视频| 国产欧美一区视频| 欧美+亚洲+精品+三区| 亚洲午夜精品视频| 欧美激情一区二区三级高清视频 | 亚洲激情电影在线| 国产精品久久九九| 欧美成年人视频网站| 亚洲在线观看免费视频| 亚洲福利专区| 欧美亚洲一级| 夜夜夜精品看看| 一区在线影院| 国产精品夜夜嗨| 欧美精品一线| 牛牛精品成人免费视频| 欧美一区二区免费视频| 亚洲精品字幕| 亚洲黄网站黄| 亚洲成人在线网站| 开心色5月久久精品| 欧美在线免费看| 亚洲一区免费观看| 日韩亚洲欧美精品| 亚洲第一页在线| 黄网站免费久久| 国产香蕉久久精品综合网| 欧美香蕉视频|