用C 寫的龍貝格(Romberg)積分法

2022-02-09 03:12:28 字數 995 閱讀 2893

很久之前了,群上有人問有沒有用c#寫的積分函式,因為我自己以前做過乙個積分計算器,就跟他說搜尋一下romberg積分法吧,但是後來他說網上寫的都是用c++寫的方法,沒有c#的,問我有沒有,但是我之前是在家裡做的,學校裡沒有副本,可惜。

今天翻一下郵箱,發現居然是我忘記貼標籤,導致當時沒有找到,感覺有點對不起那位兄弟,在此就拿出來分享一下吧。

網上翻過很多**都是照搬演算法說明來迭代的,我卻把那個公式代進去,化簡到只剩下四項,將空間要求降低了,如果還有什麼能改進的地方請各位多多指教!以下是**片斷:

code

//////

romberg 龍貝格演算法

//////

被積表示式函式

///積分下限

///積分上限

///精度

///最大迭代次數

///public

static

double

romberg( func

<

double

, double

>

f, double

a, double

b, double

e, int

maxsteps )

else

}return

r2;}

private

static

double

h( func

<

double

, double

>

f, double

a, double

b, int

n )

returnh *

sum;

}

那個 private static double h 方法其實就是最簡單梯形法,也許可以將它寫成romberg方法裡面的匿名方法,但是因為我的類中romberg方法還有很多過載,所以就寫成這樣,也許c# 4.0 出來後有可選變數的時候就可以這樣做了。

數值積分 龍貝格 Romberg 積分

數值積分在工程上是個比較有用的數學工具。在工程上有很多數學問題,看似簡單,計算所用的數學公式不算複雜,但是求解起來卻很困難,很難獲得解析解的公式,這個時候就需要用到數值求解的辦法來獲取滿足工程需要的近似數值結果。舉個簡單的例子,求乙個變截面圓柱 或者叫圓台 的等效截面慣性矩,計算公式為ie h 3 ...

我用C 寫的日曆

只要呼叫構造方法就可以啦 using system using system.collections.generic using system.linq using system.text public class calendar 構造方法 年 public calendar int year e...

用C 寫定時關機的程式

12點的時候自動關閉機器。此程式在 win2k 下輕鬆測試通過。說輕鬆是因為即使執行著很多其它程式,依然能夠正常關機。原理非常簡單,也就不用放 上來。就是呼叫乙個 api關閉計算機的函式,需要先宣告。dllimport user32.dll exactspelling true,setlasterr...