色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用Python制作數值積分程序

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-13 08:38 ? 次閱讀

步驟1:了解算法第1部分:定積分及其使用

怎樣用Python制作數值積分程序

我假設您對基本演算的背景了解一點積分。積分很重要,因為它們使您可以將值數組乘以 infinitesimal 長度求和;這在金融,數論,物理,化學以及許多其他領域中很有用。但是,該程序僅允許您計算有限間隔內曲線下方的面積,換句話說,它不會評估反導數-要使用更強大的算法,那。如果您需要在針對其他對象指定的較大程序中求值定積分,或者要檢查答案是否需要手工完成,則此算法很有用。

基本定積分表示函數定義的曲線下的面積,例如F(X)。對于確定的積分,我們求兩點之間的面積(分別標記為a和b)。在圖片中,綠松石區域是我所指的區域,并且確定該區域的公式也顯示在該區域中。圖片中顯示的功能是任意的。

步驟2:了解算法第2部分:數值逼近

計算機需要大量的指令來計算該面積在可用于任何功能的任意函數下,因此您可能熟悉的分析方法沒有用,因為它們太特殊了。一種計算機可以實際處理的近似計算積分的方法是,用感興趣的區域填充用戶定義的寬度和高度可變的矩形,然后對所有矩形區域求和,從而完成計算。矩形的剛性將使某些總面積保持不變,因此為什么將其視為近似值;但是,您可以在邊界(a和b)之間填充的矩形越多,由于未觸摸的區域變得稀疏,所以近似值越準確。由于計算機將執行此任務,因此可以將所需區域中的矩形數量設置為非常大的數量,從而使逼近非常精確。在支持圖片中,假設指定區域中的每個矩形都具有相等的寬度。我盡了最大努力使它們在Microsoft Paint中具有相等的寬度,但沒有做得最好。

步驟3:了解算法第3部分:中點規則

此規則指定如何在矩形中制作和使用矩形近似值。 “ N個”矩形中的每個矩形必須具有相等的寬度Δx,但每個第n個矩形不能完全相同:變化因子是高度,它隨在某個點求值的函數而變化。中點規則之所以得名,是因為您將每個矩形的高度評估為f(x_n),其中“ x_n”是每個矩形的相應中心點,分別位于矩形的左側或右側。使用中點就像實現平均值,比起使用右或左時,將使近似值更準確。此步驟的輔助圖片總結了如何在數學上定義中點規則。

第4步:創建程序第1部分:下載Python編譯器/編輯器

現在,您了解了需要實現的算法,即讓計算機為您執行計算的問題。告訴計算機該怎么做的第一步是獲取執行此操作的工具。該算法可以用任何語言編碼。為簡單起見,該程序將使用Python語言進行編碼。要命令您的計算機執行Python操作,您將需要一個編輯器,該編輯器以該語言編寫指令,然后將其編譯為計算機可以理解的機器語言,從而可以執行您要執行的任務。在當今時代,通常將編輯器和編譯器集成在一起,但是并不總是如此。您可以使用任何您喜歡的編輯器/編譯器,但我將向您展示如何獲取我個人最喜歡的Python:Canopy。如果您已經具有編輯器/編譯器,則可以跳過這些步驟。

轉到https://www.enthought.com/product/canopy/

單擊下載機蓋

單擊與您的操作系統相對應的下載按鈕

下載將自動開始。

啟動后,請按照滴注說明進行操作執行文件

運行程序

從程序主菜單中單擊“編輯器”

在屏幕中央單擊“創建新文件”

從這一點開始,您應該看到一個空白的白色窗口,其光標類似于基本的文字處理文檔。現在您可以開始編碼用于求解定積分的數值積分算法了。后續步驟將提供您要復制的代碼片段,并說明該代碼片段對整個程序的作用。

步驟5:創建程序第2部分:導入函數和定義變量

將代碼復制到圖片中。

對于您可能會發現自己進行編碼的任何程序,都會有變量。變量是給將要操作并且可以更改的值的名稱。在大多數編程語言(如果不是全部)中,您必須先初始化變量,然后程序才能對其進行更改。在此程序中,我將變量命名為“ N”,“ a”和“ b”。這些值分別表示迭代數(矩形的AKA數),下邊界和上邊界。您可以隨意命名這些名稱,但要匹配“理解算法第3部分:中點規則”中給出的公式,最好使其保持不變。請注意,它們不僅設置為特定值。這是因為將它們作為輸入,以便在運行程序時,程序的用戶可以定義值。輸入命令后,引號中的文字會在您運行程序時顯示,告訴您要鍵入哪種類型的值。您還將注意到,在輸入名稱之前使用了“ int”和“ float”。這些術語告訴計算機此值將是什么類型的變量。 “ int”是整數,“ float”是浮點值(即十進制)。應該清楚為什么要這樣指定它們。

在“#”之后出現的任何文本都是注釋,它使程序員可以以人性化的方式遵循代碼;我已經在您的代碼中做了一些注釋,您將復制這些注釋,但是可以隨意添加任何對您有幫助的注釋。該程序將不會讀取任何帶有“#”作為命令的內容。

讀取“ from math import *”的代碼部分告訴程序導入一系列可以使用的數學函數無需自己編寫程序。 “ *”僅表示“全部”。將這部分代碼讀為:從數學庫中導入所有函數。這使您可以使用數學函數,例如正弦,余弦,對數,exp等。這些函數可以數學方式集成在代碼中。

第6步:創建程序第3部分:創建集成函數

將代碼復制到前一個下方的圖片中碼。

警告:本部分內容繁瑣,我想清除一些可能引起混淆的內容。在談論編程時,“功能”一詞會彈出很多。當您談論數學時,這個詞也會彈出很多。因此,從這一點開始,當我在編程意義上談論一個函數時,我將寫“ Python函數”,而當我談論數學函數時,我將說“數學函數”。在某些時候,我們將使用Python函數作為所討論數學函數的表示形式。

下一段代碼是程序的核心。在這里,定義了一個Python函數,該函數使用中點規則執行數值積分算法。 “ def Integrate(N,a,b)”的讀法是:定義一個名為“ Integrate”的函數,該函數接受變量“ N”,“ a”和“ b”,并返回曲線下方的面積(數學函數)這也在“集成” Python函數中定義。您可以在進行編碼時以任何方式調用此Python函數,但是將其稱為集成是有意義的,因為它確實集成了數學函數。

在這一點上,值得一提的是Python隔離代碼塊。代碼塊是執行特定任務的整個部分。不同的編程語言將具有指定的方式來區分這些“塊”。對于Python,一個塊通過縮進來區分:每個執行任務的部分都有自己的縮進,并且其他縮進塊中也可以有縮進塊。這代表了任務中的任務,并從根本上告訴了代碼執行的順序。對于已定義的Python函數“集成”,該函數中的所有內容都縮進一個塊,從而區分將在該函數中執行的任務。這個Python函數中的縮進部分也執行自己的任務。內容如下:列出命令(任務),在命令后面加冒號,并在其下方縮進該命令的內容。

在定義“集成” Python函數之后,您將立即定義另一個稱為f(x)的Python函數。這表示將要積分的數學函數。對于要集成的每個不同的數學函數,您都必須轉到此程序行以對其進行更改(與運行程序時定義的變量不同)。每個Python函數都會有一個返回值,這就是當您將其賦值時該函數返回的結果。在這種情況下,拋出的值是“ x”,而這個“ x”項將采用您拋出的值的值,它是一個臨時值。

接下來,是一個for循環充當本教程“理解算法”部分的公式中定義的求和。此求和需要更多幾個變量,其中一個將作為整個“ Integrate” Python函數的返回值。在for循環之前,我已將這些變量指定為“ value”和“ value2”。 for循環的任務是遍歷指定變量的值范圍,該變量可以在for-loop命令中方便地定義;在這種情況下,該變量為“ n”。發生迭代的范圍是1到N + 1。您應該注意到,上述公式中定義的總和范圍僅從1到N。我們用這種方式進行定義,因為Python語言會從0開始對每個迭代值進行計數,因此我們必須從本質上轉移這些值的范圍以適應我們的期望范圍。然后,for循環允許將所有矩形的高度加在一起,并將該值存儲到我稱為“值”的變量中。這在顯示為:value + = f(a +((n-(1/2))*((b-a)/N)))的代碼段中可以看到。

從那里開始,下一段代碼使用名為“ value2”的變量,然后將其分配為每個矩形的所有高度的總和乘以每個矩形的標準化寬度。是我們要在程序中顯示的最終答案,因此是“集成” Python函數的返回值。

第7步:創建程序第4部分:顯示答案

將代碼復制到先前代碼下方的圖片中。

現在,可以通過“集成” Python函數獲得答案了,我們希望能夠顯示它。這只是將用戶輸入的值(“ N”,“ a”和“ b”)放入“集成” Python函數并將其打印在屏幕上的問題。該命令顯示在第21行,它實際上是完成該步驟所需的全部操作。第19和20行上的代碼僅用于“修飾”整個程序的輸出。 “ print(” 。..。..。..。..。..。..。..。..。..。..。..。..。“)”將程序的輸入部分與輸出部分分開,然后“ print (“這是您的答案:”),僅表示將在該行文本之后打印答案。

步驟8:運行程序第1部分:按原樣運行程序

如果您不使用Canopy,則您甚至可能根本不需要執行此步驟,并且運行該程序可能需要不同的過程。在Canopy中,您必須先保存它,然后才能運行該程序。 Python程序的文件類型是.py文件-它會自動保存為。選擇要保存文件的位置,然后就可以運行該程序了。

運行程序:

在顯示文件名的工具欄上方,點擊看起來像“播放按鈕”的綠色按鈕(請參閱圖片) )。

然后該程序將在稱為Canopy數據分析環境的編輯器的底部屏幕中運行。假設您復制了我編寫的提示,則應該在Canopy數據分析環境的底部看到提示:“輸入要累加的次數(更多=更準確):。”。 (請參閱圖片)

輸入一個值,表示要執行多少次迭代,即10000(要推入您所在區域的矩形數),然后按Enter鍵。

將出現更多的提示,這些提示應該是您在步驟5中編碼到程序中的熟悉的輸入提示。

應該對積分求值,并且應該顯示結果。

如果您如上圖所示對程序進行編碼,則您剛剛積分了f(x) = x ^ 2在一定范圍內。 x ^ 2的積分很容易手動計算,因此您應該檢查并確保程序對手動確定的正確分析值給出了非常接近的答案。當我使用N = 10000,a = 0和b = 10的值運行程序時,得到的答案是333.33333249999964。正確的分析答案是333.333。這是非常準確和快速的。實際上,您已經在x軸上擠壓了10,000個介于0和10之間的矩形,并使用它們來近似計算曲線x ^ 2下的面積!

步驟9:運行程序第2部分:集成其他數學函數

在上一步中,如果您一直在關注忠實地,您對f(x)= x ^ 2進行了積分。這不是該程序可以集成的唯一數學函數。在第5步中,您已經將Python函數的數學庫數組導入程序中。這使您可以使用可以集成的更復雜的數學函數。讓我們試一試。當然,您可以使用任何想要的函數,但是我將通過集成一個特定的數學函數來進一步證明該代碼的準確性,該數學函數在一定范圍內集成時會產生一個眾所周知的值。該函數為f(x)= Sin [x]。此數學函數顯示在第一張隨附的圖片中,從0到2π進行繪制,并且感興趣的區域以綠松石陰影顯示。在此間隔中,正面積與負面積相等,因此,如果將總面積相加,則應該為零。讓我們看看這是否真的發生:

將數學函數f(x)= Sin [x]放入程序中:

再次運行程序之前,在注釋下“返回后#type您的函數,”鍵入:sin(x)當前位于x ** 2的位置。 (參考圖片)。

再次點擊綠色的播放按鈕運行程序。

輸入10000作為N值(您希望求和多少次)。

輸入“ 0”作為下邊界。

將6.2832輸入上邊界(大約2π)。

看看您能得到什么價值。

當我這樣做時,最終得到的價值是1.079e-10:這等于.0000000001079,這實際上是接近于零,因此它看起來確實是準確的,并且表明該算法足以處理負區域。

步驟10:運行程序第3部分:擴展程序

至此,您已經完成:您已經在其中編寫了一個有效的確定積分算法可以平穩運行并給出非常準確答案的Python。但是,可以改進此程序。我不是程序員,并且對Python的經驗很少。實際上,我不得不重新學習如何使用Python來完成本教程,但這應該使您相信Python是一種易于學習的語言。我的觀點是,您可以通過提高程序效率來擴展該程序,也許可以實現一些GUI,并使其更加用戶友好。

我對擴展程序的想法:

實現一個圖形用戶界面,使您無需使用Canopy交互式數據分析環境即可運行程序

對其進行設置,以使無需集成要集成的數學函數程序,但可以在程序運行后輸入(我最初是想這樣做,但無法弄清楚)。

定義一個“集成” Python函數,以便將f(x)函數視為在其中定義了f(x)函數的地方。

這些是只是一些需要改進的例子,但我保證還有很多其他可以改進的地方。因此,我將這一步驟作為該程序存在缺陷的一個示例,并作為任何想進一步改進該程序的人的練習。
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    117

    文章

    3791

    瀏覽量

    81153
  • python
    +關注

    關注

    56

    文章

    4798

    瀏覽量

    84801
收藏 人收藏

    評論

    相關推薦

    如何使用Python實現PID控制

    PID控制(比例-積分-微分控制)是一種常見的反饋控制算法,廣泛應用于工業控制系統中。在Python中實現PID控制,我們可以遵循以下步驟: 1. 理解PID控制原理 PID控制器有三個主要參數
    的頭像 發表于 11-14 09:09 ?548次閱讀

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當輸入信號VG1從7.06V慢慢變化到7.22V時。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設置那個輸入信號VG1才能達到我的目的。因為這個電壓源好像
    發表于 08-02 08:39

    怎樣用表測穩壓管穩壓值

    表是一種常用的電子測量工具,可以用來測量電壓、電流、電阻等多種參數。在測量穩壓管的穩壓值時,我們可以使用萬表的直流電壓測量功能。以下是步驟和注意事項: 準備工具和材料 萬表 穩壓管 電源
    的頭像 發表于 07-31 14:26 ?1771次閱讀

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?934次閱讀
    <b class='flag-5'>怎樣用</b>Arduino測試鋰電池容量

    python寫驗證環境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發表于 07-24 09:38 ?572次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環境cocotb

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?887次閱讀

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用將PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發表于 05-07 06:06

    Python怎么讀取STM32串口數據?

    =ser.readlines()print(s) 可是什么都讀取不了。如果買的STM32開發板送的串口助手,能接收到數據。板子上燒錄的printf輸出程序。 請問各位大神,Python程序
    發表于 04-24 07:30

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復制粘貼例程的代碼完成了測試。
    發表于 03-12 08:15

    微軟大幅上調積分點數,引發用戶強烈抗議

    據悉,Reddit以及X平臺用戶反饋稱,在美區微軟或Xbox禮券的兌換積分數值均有顯著提升,例如,一張50美元禮品卡的需要積分由46,000點猛升至47,500點;同樣的,100美元禮品卡的需積分將從91,000點飆升至95,0
    的頭像 發表于 03-08 09:59 ?564次閱讀

    積分-黎曼和的極限解析

    積分如果存在就是一個具體的數值,這個精確的定義是黎曼給出的,所以也叫黎曼積分
    的頭像 發表于 03-04 09:47 ?5593次閱讀
    定<b class='flag-5'>積分</b>-黎曼和的極限解析

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復
    的頭像 發表于 01-31 10:41 ?2661次閱讀

    ADUC7060仿真時,雖然程序能正常運行,但無法Watch查看正確的數值是為什么?

    ,正常顯示的應該是0x00,0x01,0x02,0x03,0x04,0x05 而實際顯示的是 如果再定義一組變量 將上述數組變量一一賦值給單一的變量 顯示的結果正常 得出結論: 仿真時,雖然程序能正常運行,但無法Watch查看正確的
    發表于 01-11 07:32
    主站蜘蛛池模板: aaa在线观看视频高清视频| 国产成人精品久久久久婷婷| 国产亚洲精品久久久久久入口 | 中国农村妇女真实BBWBBWBBW| 久久精品视在线-2| 中文字幕无线手机在线| 欧式午夜理伦三级在线观看| 丰满的寡妇hd高清在线观看| 亚洲AV久久无码高潮喷水 | 乱奷XXXXXHD| 成人精品视频| 亚洲免费中文| 农民下乡在线观看3| 国产XXXXXX农村野外| 亚洲一级电影| 热热久久超碰精品中文字幕| 国产女人91精品嗷嗷嗷嗷| 在线看片亚洲| 四房播播最新地址| 啦啦啦 中国 日本 高清 在线| 办公室中文BD| 亚洲精品高清中文字幕完整版| 浪潮色诱AV久久久久久久| 高h np 强j 乱l 双性| 一品道门在线观看免费视频| 青草久久精品亚洲综合专区| 99er久久国产精品在线| 国产精片久久久久久婷婷| 亚洲婷婷天堂综合国产剧情| 欧美一区二区VA毛片视频| 国产在线观看黄| 办公室沙发口爆12P| 又黄又爽又无遮挡在线观看免费| 日韩免费一级毛片| 久久视热频国产这里只有精品23 | 神马电影院午 夜理论| 老师的丝袜脚| 国产亚洲精品线视频在线| www伊人网| 综合精品欧美日韩国产在线| 性xxx免费视频|