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

2020-12-14 小橋談編程

本文要實現一個簡單的功能,在直角坐標系中,求解任意一個函數與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,列出如下表達式:就是傳說中的積分啊!!!
  • 歷屆數學期末考試,重點題型解析,利用函數方法解決幾何圖形計算...
    一次函數與反比例函數是八年級的重要知識點,利用函數方法解決幾何圖形的計算問題是期末考試的難點,本文就例題詳細講解這類題型的解題思路,希望能給大家期末複習備考帶來幫助。例題如圖,在平面直角坐標系中,一次函數=-4/3x+4的圖像與x軸、y軸分別相交於點C、D,四邊形ABCD是正方形,反比例函數y=k/x的圖像在第一象限經過點A。
  • 基本初等函數 指數函數 代碼篇
    由於機器學習和數學密切相關,尤其是數學中的函數,因此我們非常有必要複習和了解基本的函數知識。上一篇文章中,我們為大家介紹了基本初等函數中的指數函數 基本初等函數 指數函數,本文將為大家介紹如何利用python語言完成函數的繪製。
  • 如何計算y1=sin2x與y2=sinx/4圍成的面積計算
    本文主要內容通過和差化積,求出函數的交點,並用定積分計算兩個正弦函數y1=sin2x與y2=sinx/4圍成的面積。函數示意圖兩三角函數在同一坐標系圍成區域示意圖。解析函數在部分周期上的交點坐標:圍成區域面積計算通式情形之一,三角函數y1在y2上方時的計算通式:情形之二,三角函數y1在y2下方時的計算通式:部分區域面積計算舉例
  • 利用python計算三角形的面積
    利用python計算三角形的面積。(1)輸入三個數,作為三角形的三個邊長,利用海倫公式計算三角形的面積。海倫公式:假設在平面內,有一個三角形,邊長分別為 a、b、c,三角形的面積 S可由以下公式求得。b=float(input("請輸入第二條邊"))c=float(input("請輸入第三條邊"))p=(a+b+c)/2S=math.sqrt(p*(p-a)*(p-b)*(p-c))print("三角形({},{},{})的面積為
  • 利用python的sympy求解微積分
    python中有一個sympy科學計算庫,專門用來解決數學的運算問題。極限極限公式常數a就叫做函數f(x) 當x-->x0 時的極限。解釋:limit是求極限方法,三個參數分別表示 函數表達式1/x,變量x,極限位置值0。最後結果為oo無窮大。
  • python利用海倫公式求三角形的面積
    前言從小學我們都知道,三角形的面積是底乘以高除以2。那麼已知任意一個三角形的三條邊,如何能夠求出三角形的面積呢?這裡我們用到了海倫公式。海倫公式又譯作希倫公式、海龍公式、希羅公式等,它是利用三角形的三條邊的邊長直接求三角形面積的公式,表達式為:其中p是三條邊的和的一半兒。
  • python多重線性回歸分析
    客流量(萬人次)']]#定義因變量y=df[['銷售額(萬元)']]#計算相關係數df['營銷費用(萬元)'].corr(df['銷售額(萬元)'])df['客流量(萬人次)'].corr(df['銷售額(萬元)'])#營銷費用 作為x軸#銷售額 作為y軸,繪製散點圖df.plot
  • 探究一規律,活求二次函數背景下的面積最值問題,越深入越簡潔
    【預備知識】三角形面積計算的常用策略如圖1,如果三角形的某一條邊與坐標軸平行,計算這樣「規則」的三角形的面積,直接用面積公式如圖2,圖3,三角形的三條邊沒有與坐標軸平行的,計算這樣「不規則」的三角形的面積,用「割」或
  • Python 2.x 與 Python 3.x 的區別
    但我們還是要去了解下 Python 3.x 與 Python 2.x 之間都有哪些改變,通過對比能讓你對 Python 有更加深刻的理解。並且在很多面試過程中,面試官都會問:Python 2.x 與 Python 3.x 的區別。今天就給大家列舉 Python 3.0 主要改變的幾個方面。Py3KPython 的 3.0 版本,常被稱為 Python 3000,或簡稱 Py3K。
  • python中利用py幫助命令擴展開發知識面
    知識回顧:上一節主要學習了%取餘數,舉例如下:5%3=2利用這個取餘的方法,我們可以計算幾天後是星期幾的問題?計算公式:(今天是星期幾+幾天後)%7本節知識視頻教程一、回到python REPLpython REPL簡稱python控制臺。
  • 八年級上學期,一次函數與坐標軸圍成的三角形面積,注意分類討論
    一次函數與坐標軸圍成的三角形面積是常考的題型,在解題需要靈活變通,需要掌握的基本知識點有6個。(2)點P坐標為(2,-6),則點到x軸的距離為______,到y軸的距離為______。4.直線與坐標軸的交點坐標(1)一次函數y=0.5x+2的圖像與x軸的交點______;與y軸的交點______;(2)一次函數y=-x-1的圖像與x軸的交點為______;與y軸的交點______;5.三角形的面積公式
  • 新課程·反比例函數系列—雙曲線同象限面積(中考數學壓軸)
    #原理證明:如圖:D為反比例k1/x一點,E為反比例k2/x上一點,且DE平行x軸,則S△ODE=丨k1- k2丨/2當O在x軸運動的時候,面積保持不變。典型例題:(2018臨潁縣一模)如圖,直線l⊥x軸於點P,且與反比例函數y1=k1/x(x>0)及y2=k2/x(x>0)的圖象分別交於點A,B,連接OA,OB,已知△OAB的面積為2,則k1﹣k2的值為(  )A.2 B.3 C
  • 中考數學壓軸題:二次函數與幾何圖形綜合之面積問題
    縱觀歷年來的中考數學卷,壓軸題幾乎都是與二次函數有關。今天鄭老師為大家整理了二次函數與幾何圖形的綜合題,希望對大家的複習有幫助。今天我們接著講3題與面積有關的問題。【分析】(1)聯立兩解析式,根據判別式即可求證;(2)畫出圖象,求出A、B的坐標,再求出直線y=﹣2x+1與x軸的交點C,然後利用三角形的面積公式即可求出答案.
  • 2020年中考數學專題訓練—反比例函數計算型問題,看懂K值很重要
    2020年反比例函數專題訓練,你學會了嗎?一、方法技巧提煉反比例函數的計算型問題不僅考察反比例函數的性質,還與幾何圖形相結合,是數形結合思想的重要體現,也是歷年中考的熱門考點。近年重慶中考中,反比例函數計算型問題主要是以選擇題的形式出現,難度中等及偏上。
  • 雙雙把家還,發掘反比例函數一模型,攻克面積難題有奇效
    我們一般對反比例函數係數k的幾何意義有所了解,如在反比例函數y=k/x圖象中任取一點,過這一個點向x軸和y軸分別作垂線,與坐標軸圍成的矩形的面積是定值|k|.而在中考舞臺上,我們也常常可以看到兩個反比例函數的圖象,雙雙曲線同時出現在同一個坐標系中,出現特殊面積關係如下:經典應用下面問題先用普通解法
  • 初二數學培優,一次函數中三角形面積問題,要掌握五類題型
    一次函數與三角形面積問題,其本質是一次函數的圖像與平面直角坐標系中的坐標軸或其它直線所圍成的三角形面積問題,是初二階段知識的一個難點,利用一次函數圖像上點的坐標特徵結合三角形面積公式。解決此類問題,一定要學會畫圖,選擇合理的方法計算三角形的面積,或列出計算面積的方程。考查的知識點較多,題型靈活多變,將代數與幾何有機聯繫在一起,難度較大。解決一次函數中面積問題必備知識點1.
  • 利用二次函數求圖形面積最值問題,注意自變量,學會解題策略
    應用二次函數解決實際問題中,常見的類型之一就是求解圖形的面積的最值問題,而在求解過程中,首先要建立數學模型,把實際問題轉化為二次函數的問題,利用題中的等量關係,求出函數的解析式,然後利用函數的圖像和性質去解決問題。在日常生活中,經常遇到求某種圖形的面積最大等問題,這類問題可以利用二次函數的圖像和性質進行解決,也就是把面積最大問題轉化為二次函數的最大值問題。
  • python畫圖函數大全
    今天,我們就給大家整理了一下python畫圖的常用函數,由於篇幅限制。無法將這些函數的使用方法全部表現出來。所以,我們只舉一些典型的函數的例子。      說道繪製圖形,matplotlib是一個繞不開的第三方庫。
  • Python X 蒙特卡洛方法
    我們用python來實現這個過程:  首先我們自定義一個變量x的平均值為10, 標準差為0.3import numpy asn=1000 #這裡的n就是蒙特卡洛模擬的隨機數生成器x=np.random.normal(meanX1, stdX1, n) #使用numpy內置的正態分布函數random.normal(),隨機產生x1000次我們再假設自變量x和因變量y有如下函數關係: