天天看點

【原創】開源Math.NET基礎數學類庫使用(08)C#進行數值積分前言1.定積分2.Math.NET關于定積分的實作3.C#使用Math.NET求解定積分的例子4.資源

  在數值計算的需求中,數值積分也是比較常見的一個。我們也知道像matlab,mathematics等軟體的積分求解功能非常高大上,不僅能求解定積分,還能求解不定積分,甚至多重積分等等。而math.net這個元件沒有如此進階的功能,目前也隻提供了比較件的閉區間上的定積分求解功能。今天就一起來看看,因為不定積分涉及到符号計算,是以其背後的原理和實作要複雜得多。就連matlab這種軟體暫時也不支援混編程式設計求解符号計算相關的功能。

  很多人可能已經淡忘了定積分的概念,當然需要用到的朋友看到這裡,也基本不用看本段的内容,比較簡單,高等數學已經是10多年前學過的東西了,雖然以前很精通,現在也隻能憑印象了解和網絡來對這個概念稍微進行整理,可能有些不完整或小錯誤,還請諒解。

  數學定義:如果函數f(x)在區間[a,b]上連續,用分點xi将區間[a,b]分為n 個小區間,在每個小區間[xi-1,xi]上任取一點ri(i=1,2,3„,n) ,作和式f(r1)+...+f(rn) ,當n趨于無窮大時,上述和式無限趨近于某個常數a,這個常數叫做y=f(x) 在區間上的定積分. 記作/ab f(x) dx 即 /ab f(x) dx =limn>00 [f(r1)+...+f(rn)], 這裡,a 與 b叫做積分下限與積分上限,區間[a,b] 叫做積分區間,函數f(x) 叫做被積函數,x 叫做積分變量,f(x)dx 叫做被積式。   幾何定義:可以了解為在 oxy坐标平面上,由曲線y=f(x)與直線x=a,x=b以及x軸圍成的曲邊梯形的面積值(一種确定的實數值)。

詳細的可以參考以下連結:

  下面的例子就是直接調用該類進行的。  

   使用比較簡單,直接看源碼:

參數主要有3個:函數,積分下限,積分上限,其他的就是附帶一個絕對誤差了,看看運作結果: