日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩形法求定积分的原理和实现

發(fā)布時(shí)間:2024/9/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩形法求定积分的原理和实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

矩形法求解定積分

做個(gè)小筆記,如表述有不對的地方,歡迎指正。

原理

積分在圖形上表示就是面積,把被積分區(qū)域劃分成一個(gè)個(gè)小矩形,求解這些矩形的面積和即可。

被積函數(shù):f(x)f(x)f(x);

積分區(qū)間:[a,b][a,b][a,b];

積分區(qū)間劃分?jǐn)?shù):NNN;

每個(gè)小矩形的面積:
Si=(b?a)/N?∣f(a+(b?a)/N?i)∣Si = (b - a )/ N * |f(a + (b - a )/ N * i)|Si=(b?a)/N?f(a+(b?a)/N?i)

說明:
你可以想象一下,在積分函數(shù)圖形上,我們把被積分區(qū)域劃分成NNN等份,

此時(shí)每個(gè)小矩形的底為:(b?a)/N(b - a )/ N(b?a)/N.

如果N足夠大,可以把被積分區(qū)域劃分成一根根針一樣大小的矩形區(qū)域。

此時(shí)小矩形的底可以看成一個(gè)點(diǎn)。在被積分區(qū)域內(nèi),每個(gè)小矩形對應(yīng)的位置

為:x=a+(b?a)/N?ix = a + (b - a )/ N * ix=a+(b?a)/N?i,將其代入f(x)f(x)f(x)即可得到對應(yīng)小矩形的高。

假設(shè)iii為第iii個(gè)小矩形 , 則∣f(a+(b?a)/N?i)∣|f(a + (b - a )/ N * i)|f(a+(b?a)/N?i)即為第iii塊小矩形的高。

所以計(jì)算每個(gè)小矩形的面積用如上所述的公式。

f(x)f(x)f(x)如果為cos,sin,expcos,sin,expcos,sin,exp等內(nèi)置函數(shù)可以使用C/C++里面的math庫,注意這些函數(shù)的傳參如果是角度要轉(zhuǎn)換為弧度傳入:角度 / 180 * PI

例子

求解定積分:∫01sinxdx\int^{1}_{0}sinxdx01?sinxdx

根據(jù)上述公式寫出矩形法求解此定積分的代碼

#include <iostream> #include <cmath> using namespace std;double get_integral_sinx(double a,double b,int N) {/*積分區(qū)間:[a,b] ,值均是弧度積分區(qū)間劃分?jǐn)?shù)目:N ,越大求得的結(jié)果越精細(xì)被積分函數(shù):sinx*/double x = (b - a) / N;double ans = 0;for(int i = 1; i <= N; ++i){ans += x * fabs(sin(a + x*i));}return ans; } int main() {double ans = get_integral_sinx(0,1,1000);cout<<ans<<endl;return 0; }

如果你第一次接觸,你難免會(huì)對上述做法有點(diǎn)疑慮,怕不可靠。
為了打消你的疑慮,我們結(jié)合我們手動(dòng)求解定積分的方式來一個(gè)結(jié)果對比驗(yàn)證

∫01sinxdx=[?cosx]01=1?cos(1)\int^{1}_{0}sinxdx = [-cosx]^{1}_{0} = 1 - cos(1)01?sinxdx=[?cosx]01?=1?cos(1)

#include <iostream> #include <cmath> using namespace std; int main() {cout<<(1-cos(1))<<endl;return 0; }

運(yùn)行上述兩段代碼,(運(yùn)行結(jié)果我就不貼了,請自行驗(yàn)證)就可以對比出矩形法求解定積分的可靠性。

其他

我們常常可以使用C/C++里的math庫中的一些內(nèi)置函數(shù)表示我們常用的一些常數(shù)
比如圓周率PIPIPI:
因?yàn)?span id="ozvdkddzhkzd" class="katex--inline">cos(PI)=?1.0cos(PI) = -1.0cos(PI)=?1.0,所以有:

const double PI = acos(-1.0);

再如:常數(shù)eee,我記得大概是2.7…
exp(x)exp(x)exp(x)函數(shù)是用于計(jì)算exe^xex,所以有:

const double e = exp(1.0);

總結(jié)

以上是生活随笔為你收集整理的矩形法求定积分的原理和实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。