C语言求解定积分(蒙特卡罗方法)
生活随笔
收集整理的這篇文章主要介紹了
C语言求解定积分(蒙特卡罗方法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
求解區間 [2,3][2, 3][2,3] 上的定積分:
∫23(x2+4xsin(x))dx\int_{2}^{3}(x^2 + 4xsin(x)) dx ∫23?(x2+4xsin(x))dx
代碼如下:
#include <iostream> #include <math.h> using namespace std;double f(double x){return x * x + 4 * x * sin(x); // 函數 }double MTK(double a, double b, int n){// 蒙特卡羅方法:面積 = 寬度 x 平均高度double h = 0, w = b - a;for (int i = 0; i < n; i++) // 采樣為均勻分布h += f(a + i * w / n); // 總高度return h / n * w; }int main(int argc, char const *argv[]) {double a, b;int n = 10000; // 采樣次數cin >> a >> b;cout << MTK(a, b, n) << endl;return 0; }結果如下:
求解為 11.8114,較精確解為 11.8113589251
總結
以上是生活随笔為你收集整理的C语言求解定积分(蒙特卡罗方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thymeleaf th:each根据整
- 下一篇: batplot:图示Bland-Altm