電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>人工智能>為什么選用python進行科學計算

為什么選用python進行科學計算

2019-01-02 | rar | 0.03 MB | 次下載 | 免費

資料介紹

  腳本語言已經(jīng)為很多科學計算器的構(gòu)建提供了很多強有力的工具,因為他們提供了其他解釋型語言的接口。和很多用C,C++,F(xiàn)ortran,等編寫的軟件進行集成,也可以為他們提供框架單元構(gòu)建。在這篇論文中,我主要描述腳本語言到科學計算工程中的進程,我強調(diào)的是使用python在科學動態(tài)研究中采用的大規(guī)模模塊動態(tài)代碼,實驗在在洛斯阿拉莫斯國家實驗室進行的。雖然這個應用程序和天文數(shù)據(jù)分析,問題,解決方案和經(jīng)驗教訓等不想關(guān),但是可能感興趣的研究人員正在考慮在自己的項目中使用腳本語言。

為什么選用python進行科學計算

  1. 簡介

  作為科學的軟件開發(fā),最大的障礙之一是如何使科學軟件靈活,使用方便,維護簡單,易于適應規(guī)模擴大和復雜性增高的新問題。當然,是有很多原因希望這些高品質(zhì),其中很重要的一點是,他們允許科學家花費更少的時間爭取更多的時間去亞牛軟件,投入更多的時間在科學上。

  很不幸的事,當前科學計算軟件的現(xiàn)狀很不理想。首先,增加的計算能力已使科學家解決了空前的規(guī)模和復雜性的問題。但是,有一個副作用,就是需要執(zhí)行這些任務(wù)的軟件也已成為龐大而復雜的。二是科學家們普遍使用各種各樣的系統(tǒng),從模擬代碼,數(shù)據(jù)分析軟件包,數(shù)據(jù)庫,可視化工具,到與每一個代表不同的接口和文件格式的本土軟件。因此,科學家可能會花費大量的時間,只是想把所有這些組件以某種方式共同工作。最后,努力運用現(xiàn)代科學軟件工程原理去重寫軟件,充其量只能產(chǎn)生不同的結(jié)果。第一,科學家不愿意去拋棄原有的軟件。其次,這種努力對第二系統(tǒng)的影響也是很脆弱的,設(shè)計者想建造一個足夠龐大的系統(tǒng)以至于不可能去實施,也不可能去滿足特定問題的需要。

  盡管存在這些困難,較有前景的技術(shù)之一,是近年來出現(xiàn)的常見的腳本語言,如Python,Perl和Tcl(Python, 1999; Perl, 1999; Tcl, 1999)。,它們作為一種工具,能創(chuàng)造更好的科研軟件。在這篇文章中,我要重點強調(diào)腳本語言,尤其是python,源于我對一種特定的應用新程序4年的跟蹤研究。我特別希望來說明腳本語言是多么適合的科學軟件項目,以及它們可提供的開發(fā)方式去解決重要的軟件工程問題,如可靠性,元器件,重用和項目管理工程。盡管討論將集中在Python中,我想強調(diào)這些原則適用于一般的腳本語言。

  2. 科學軟件開發(fā)的特點

  考慮到科學軟件主流派別。一方面有諸如IDL和MATLAB等封裝包。另一方面也有一些特定軟件去解決特定問題(多數(shù)是研究人員自己寫的)。即使是封裝包更精致,對于更有意思的科學內(nèi)容來說,更有可能被本土軟件包含。例如,一個特殊用途的程序可能被寫入為了解決偏微分方程,而像IDL這樣的包可能會錯誤百出。大多數(shù)新的科學軟件創(chuàng)建都是一個研究小組決定的,以解決新的計算問題。最初,他們的目標只是要解決一個非常具體的問題,由一組特定的方程,初始條件,邊界條件和數(shù)值技術(shù)定義。在許多情況下,這個問題可以通過編寫C或Fortran與一些數(shù)值方法和一些編程庫援助的小程序就可以搞定。

  剛開始時,程序很小。但是一旦它們成功了,就會被擴大去解決一些類似的問題。為了處理這些差異,額外的靈活性通常被添加到一個的用戶界面,無論是用戶查詢各種問題參數(shù)或要求用戶提供一個系列的命令行選項的形式系統(tǒng)。不幸的是,隨著更多的功能以這種方式被添加到工程中,科學家會在眾多命令行和神秘的輸入腳本中崩潰。當程序到達這個階段,開發(fā)者可能會決定徹底改革其結(jié)構(gòu)和用戶界面。很多時候,往往會導致本土的命令解釋器,它允許用戶設(shè)置參數(shù)和執(zhí)行簡單的命令。當然,這并不是一個驚奇。其一,實施一個簡單的命令解釋器對有能力的程序員來說并不是十分艱巨。其次,這種界面可以模仿那些更精美得科學軟件。不幸的是,這通常代表了許多項目開發(fā)的最后階段。其一,超越了簡單的解釋器將涉及廣泛的編程技能,而這正是很多編程者不具備的技能。例如,把一個完整的編程語言的命令解釋器都需要一些語言解析器的設(shè)計施工和技術(shù)知識。例如,把一個命令行解釋器變?yōu)檎麄€編程語言,需要解釋器構(gòu)造技術(shù)和一些語言設(shè)計技巧。同樣,建設(shè)一個圖形用戶界面需要一個同樣復雜的編程技能。然而更可能的情況是,科學家們沒有看到這些功能被加入所獲得收益是佛值得開發(fā)。因此,科學家的工具箱全部充滿了各種各樣的程序,每個都是他們自己寫的奇怪的語言。然而,糟糕的用戶界面只是問題的一部分。相反,關(guān)鍵的一點是,最有用的科學軟件開始時比較小,在一個相對長一段時間后變得比較零散。此外,這些項目在開始時很少創(chuàng)建通用軟件包-雖然隨著時間的推移軟件的使用目的變得更加普遍。

  由于存在這些問題,努力提高科學軟件將面臨重大的挑戰(zhàn)。首先,科學家們很少愿意放棄現(xiàn)有的軟件,特別是如果他們熟悉其運作,并對其結(jié)果的準確性充滿信心。第二,努力去吧非結(jié)構(gòu)話得程序改造成正是的軟件設(shè)計也是失敗的。最后,需要強調(diào)簡單的解決方案,也要提產(chǎn)剛和鼓勵軟件在最初創(chuàng)建時的發(fā)展和實驗。

  3. Python

  Python是一種解釋性的面向?qū)ο缶幊陶Z言,在科學應用中開始受到極大關(guān)注。因為python,和其他腳本語言一樣,為許多科學工程提供了下一個道路。Python提供了一種解釋型編程語言 ,可以看做是科學工學中已經(jīng)使用的簡單命令語言的擴展。第二,python和容易和用其他語言編寫的軟件進行集成。因此,它既可以作為一個控制語言驅(qū)動現(xiàn)有的程序,也可以作為將不同的系統(tǒng)結(jié)合在一起的膠水語言 。最后,Python提供了大量的第三方模塊集合,已經(jīng)建立的用戶群,以及以圖書和其在線參考等形式的文檔。 出于這個原因 ,可以把python作為一種擴展,當科學家寫他們自己的命令行時。

  4. 集成動態(tài)應用

  為了說明python的使用,這篇論文的最后部分將重點集中在把python加入到動態(tài)米快代碼中獲得的經(jīng)驗,這次試驗在在洛斯阿拉莫斯國家實驗室 進行的。這個應用程序最初在1992年被開發(fā),為了實現(xiàn)大規(guī)模的模塊動態(tài)的三維展示。最遲,程序用在1024處理器,在巨型計算機上運行。后來程序也可以在SUN公司的多核處理器T3D,上運行。雖然在這些領(lǐng)域取得了一些很大的成功,但是這個程序在實踐當中很難使用。尤其是,當趨勢線科學項目的目標時問題總會變得相當復雜。

  考慮到這些因素,加入python就被提上日程。首先,高度解釋的語言將為問題規(guī)范和盡可能減少C源碼的改變提供了出色的機制。第二,為了解決數(shù)據(jù)分析問題,我們計劃集成模擬代碼和數(shù)據(jù)分析和可視化功能。然而,為了使這項工作,一個非常強大的,簡單的用戶界面將是必需的。 最終,python作為一種系統(tǒng),從表面上看就像matlab和IDL一樣。從持久性和性能上考慮,python也是很好的選擇。舉例來說,他可移植大各種系統(tǒng),對用戶來說不閉有很多概念,python 也可以被加入到已經(jīng)存在的代碼中去。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1491次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  95次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  11次下載  |  免費
  11. 6100W短波放大電路圖
  12. 0.05 MB  |  4次下載  |  3 積分
  13. 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
  14. 0.23 MB  |  4次下載  |  免費
  15. 8基于AT89C2051/4051單片機編程器的實驗
  16. 0.11 MB  |  4次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設(shè)計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537793次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費