利用python計算函數與x軸之間的面積

2021-01-08 小橋談編程

本文要實現一個簡單的功能,在直角坐標系中,求解任意一個函數與x軸之間構成的面積。

用數學表達式表示出來就是:

也就是求解任意一個函數的絕對值與x軸之間構成的面積,我們以函數sin(x)為例(因為函數sin(x)便於對計算結果進行檢驗),如圖所示:

我們用積分的定義來計算,積分就是將函數分成無數的小段,然後對每一小段進行求和處理。

如上圖所示:我們將函數的定義域分為很多小份,然後對每一小份進行求和,可以看出當橫坐標劃分的越多時,計算的精度就越高。

基於這種思想,我們來考慮如何計算[0,2*pi]之間,sin(x)與x軸之間包裹的面積。

方案一

直接上代碼:

運行的結果為:

分析代碼,首先我們需要引入python的標準庫math,因為後續的圓周率pi以及函數abs和sin等都需要該模塊的支持。

代碼中的n表示x坐標軸被分為了多少份,可以理解為計算結果的精度,當n越大時,計算結果越大。

從計算結果我們可以看到,很接近正確答案4,當我們增大n到10000時,計算結果為:

可以看出,計算結果有了顯著的提高。

方案二

編程一個很重要的特性是可移植性,而上面的代碼不具備可移植性,換句話講,當我們計算sin函數的[0,3.5*pi]區間的面積時,我們需要再一次編寫代碼。所以我們給出第二種方案:

該案例中,我們將代碼分裝為函數sumSin,其中參數end表示積分的終止值,start表示開始值,默認值為0,n表示計算精度,默認值為10000,這樣我們就完成了函數的分裝。

方案三

雖然方案二已經對函數進行了封裝,但是還不夠獨立,還有耦合,如果我們要計算任意一個函數與x軸之間的距離怎麼辦?我們給出代碼方案三:

與方案二類似,讀者只需要知道在python中,函數名也可以作為參數傳入。

方案四

前面幾個方案已經實現了計算功能的封裝,下面我們通過numpy模塊實現代碼效率的提升,直接給出代碼:

可以看出代碼中,取消了for循環,在解釋性語句中最大的忌諱就是循環,而numpy可以不用循環。直接通過矩陣運算。

可能,這時候讀者會問,numpy底層代碼是不是用的循環實現的矩陣的計算?如果這樣的話,計算效率從本質上並沒有改變啊?

不是這樣,Numpy底層是使用C語言編寫,內部解除了全局解釋器鎖,其對數組的操作不是由Python解釋器完成的,效率遠高於純Python代碼。

總結

本文利用python代碼完成任意函數與x軸之間的面積,由淺入深,先後完成函數的封裝和代碼運行效率的優化。希望對你的學習有所幫助,謝謝。

相關焦點

  • 函數和x軸圍成的面積與定積分
    我們以f(x)=x^2為例,算這個曲線在區間(0,1)上與x軸圍成的面積。那麼我們先取一個小小的區間[t,t+dt]這個區間長度是dt很小以致於這個區間上的函數值,全部都是f(t),那這個區間完全就可以看成常函數啊,那這個面積很簡單底dt高f(t),面積為f(t)dt,要求(0,1)上的面積自然t的範圍是0到1,列出如下表達式:就是傳說中的積分啊!!!
  • 基本初等函數 指數函數 代碼篇
    由於機器學習和數學密切相關,尤其是數學中的函數,因此我們非常有必要複習和了解基本的函數知識。上一篇文章中,我們為大家介紹了基本初等函數中的指數函數 基本初等函數 指數函數,本文將為大家介紹如何利用python語言完成函數的繪製。
  • 利用python的sympy求解微積分
    python中有一個sympy科學計算庫,專門用來解決數學的運算問題。極限極限公式常數a就叫做函數f(x) 當x-->x0 時的極限。解釋:limit是求極限方法,三個參數分別表示 函數表達式1/x,變量x,極限位置值0。最後結果為oo無窮大。
  • 利用python計算三角形的面積
    利用python計算三角形的面積。(1)輸入三個數,作為三角形的三個邊長,利用海倫公式計算三角形的面積。海倫公式:假設在平面內,有一個三角形,邊長分別為 a、b、c,三角形的面積 S可由以下公式求得。2import matha=float(input("請輸入第一條邊"))b=float(input("請輸入第二條邊"))c=float(input("請輸入第三條邊"))p=(a+b+c)/2S=math.sqrt(p*(p-a)*(p-b)*(p-c))print("三角形({},{},{})的面積為
  • python利用海倫公式求三角形的面積
    前言從小學我們都知道,三角形的面積是底乘以高除以2。那麼已知任意一個三角形的三條邊,如何能夠求出三角形的面積呢?這裡我們用到了海倫公式。海倫公式又譯作希倫公式、海龍公式、希羅公式等,它是利用三角形的三條邊的邊長直接求三角形面積的公式,表達式為:其中p是三條邊的和的一半兒。 python根據三角形三條邊求面積1.三角形的三條邊的符合條件我們知道,三角形有三條邊,且三條邊需要滿足兩邊之和大於第三邊,否則不構成三角形。
  • 一元線性回歸分析python - CSDN
    客流量(萬人次)']]#定義因變量y=df[['銷售額(萬元)']]#計算相關係數df['營銷費用(萬元)'].corr(df['銷售額(萬元)'])df['客流量(萬人次)'].corr(df['銷售額(萬元)'])#營銷費用 作為x軸#銷售額 作為y軸,繪製散點圖df.plot
  • python一元線性回歸分析專題及常見問題 - CSDN
    客流量(萬人次)']]#定義因變量y=df[['銷售額(萬元)']]#計算相關係數df['營銷費用(萬元)'].corr(df['銷售額(萬元)'])df['客流量(萬人次)'].corr(df['銷售額(萬元)'])#營銷費用 作為x軸#銷售額 作為y軸,繪製散點圖df.plot
  • 探究一規律,活求二次函數背景下的面積最值問題,越深入越簡潔
    【預備知識】三角形面積計算的常用策略如圖1,如果三角形的某一條邊與坐標軸平行,計算這樣「規則」的三角形的面積,直接用面積公式如圖2,圖3,三角形的三條邊沒有與坐標軸平行的,計算這樣「不規則」的三角形的面積,用「割」或
  • 使用Python玩轉高等數學(5):三角函數
    安裝matplotlib最簡單的方法就是在作業系統的命令行窗口分別輸入並執行下面的命令:python -m pip install -U pip setuptoolspython -m pip install -U matplotlib使用matplotlib繪圖,會用到Numpy庫,Numpy庫主要用於科學計算。
  • 八年級上學期,一次函數與坐標軸圍成的三角形面積,注意分類討論
    一次函數與坐標軸圍成的三角形面積是常考的題型,在解題需要靈活變通,需要掌握的基本知識點有6個。>3.點到兩軸的距離(1)已知第二象限內一點P,PM⊥x軸於M,PN ⊥y軸於N,且PM=a, PN=b,則P點坐標為___(2)點P坐標為(2,-6),則點到x軸的距離為______,到y軸的距離為______。
  • 如何在Visual Studio計算正方形和圓形面積
    工具Visual Studio 2019python運行環境技術pythondjangomath庫在數學中,我們知道正方形、矩形和圓形是常見的平面圖,使用公式計算圖形的周長和面積。其中,正方形的面積等於邊長乘以邊長,矩形的面積等於長乘以寬,圓形的面積等於pi乘以半徑的平方。下面利用實例講述如何使用python語言中的math計算正方形和圓形的面積:操作步驟:1、打開Visual Studio 2019開發工具,創建python項目,然後在文件夾上,滑鼠右鍵選擇添加新建項
  • Python基礎知識:從三角形面積開始
    輸入華氏溫度:F = float(input("請輸入華氏溫度:"))C = (F - 32) / 1.8print('%.2f華氏溫度 = %.2f 攝氏溫度' % (F,C))輸入攝氏溫度:C = float(input("請輸入攝氏溫度:"))F = 1.8 * C + 32print('%.2f攝氏溫度 = %.f 華氏溫度' %(C,F))二:輸入圓的半徑計算計算周長和面積
  • python的內置函數:int()轉換成整型
    前言在Java中有強制類型轉換,我們可以利用Integer.parseInt()將一個對象轉換成int類型。在python中是利用內置函數int()來將一個對象轉換成整型。python的內置函數int的使用1.內置函數int()語法classint(x,base=10),其中x為一個字符串或數字,base來表示x是以什麼進位的數據來表示的。x數字參數可以是整數、浮點數(小數點表示和指數e表示皆可), 字符串參數僅能包含在指定進位下所涵蓋的字符,該參數可省略。
  • 初二數學培優,一次函數中三角形面積問題,要掌握五類題型
    前節提要:初二上學期,難點分析,一次函數中的等腰三角形存在性問題待定係數法求一次函數解析式,兩種類型五種題型,K的快速求法一次函數與三角形面積問題,其本質是一次函數的圖像與平面直角坐標系中的坐標軸或其它直線所圍成的三角形面積問題,是初二階段知識的一個難點
  • 2020年中考數學專題訓練—反比例函數計算型問題,看懂K值很重要
    2020年反比例函數專題訓練,你學會了嗎?一、方法技巧提煉反比例函數的計算型問題不僅考察反比例函數的性質,還與幾何圖形相結合,是數形結合思想的重要體現,也是歷年中考的熱門考點。近年重慶中考中,反比例函數計算型問題主要是以選擇題的形式出現,難度中等及偏上。
  • python中函數的運用(1)
    世界一切皆函數! 提到函數,定義我們就不說了。 大白話就是提供某個功能的黑盒子。 你提供一個數值,或者一個字符串,或者提供一個功能,或者子函數,然後函數輸出一個變量或者其他應該輸出的內容 我們先從最簡單的開始,就先計算加,減,乘,除中的一個。 我們先來計算加法。 比如我們計算1.5+2。
  • Python學習第128課——在Python中實現醉漢隨機遊走
    【每天幾分鐘,從零入門python編程的世界!】這節我們在2D平面內實現隨機遊走。我們先把原理搞清楚,用代碼實現這個原理。原理分析:我們想像在2D平面內有一個x軸和y軸組成的坐標系,有一個人他是個醉漢,他以(0,0)為原點,隨機遊走,以x和y表示遊走後的坐標值,剛開始x=0,y=0。他每走一步之前,都需要先做一次選擇,選擇往東南西北哪一個方向去走,這個選擇我們需要先引入一個random庫,這是一個可以用來實現隨機數、隨機選擇的庫,用這個庫來實現隨機方向的選擇。
  • 九年級數學,二次函數中矩形周長、面積最值問題,解題方法不同
    二次函數中矩形周長的最值問題與面積的最值問題,思考方法不一樣。矩形周長的最值問題一般藉助設點法表示出矩形的長和寬,然後利用公式得到周長,一般化簡後為二次函數,然後通過研究二次函數的性質得到最值。-1左側拋物線上的一動點,過點M作x軸的垂線MG,垂足為G,過點M作直線x=-1的垂線MN,垂足為N,直線x=-1與x軸的交於H點,若M點的橫坐標為x,矩形MNHG的周長為l.
  • Python數據可視化之scatter( )函數
    要繪製單個點,可以使用函數scatter( ),並向它傳遞一對x和y坐標,它將在指定位置繪製一個點。下面我們來設置輸出的樣式,使其更有趣:添加標題,給軸加上標籤,並確保所有文本都大到能夠看清:在這裡,我們調用了scatter( )函數,並使用實參s設置了繪製圖形時使用的點的尺寸。如果此時運行了我們這個程序,就將看到如上所示的圖表中間的一個點。
  • 八年級上學期,一次函數與面積問題,面積求點坐標註意使用絕對值
    一次函數常與三角形或四邊形的面積相結合進行考查,兩種類型的題目比較常見:(1)由函數圖像求面積;(2)由面積求點坐標。遇到第一種類型題目時,找準三角形的底和高是解題的關鍵,特別是遇到鈍角三角形。如果無法直接求解,可以利用割補法、鉛錘法等方法進行轉化。