電子發(fā)燒友App

硬聲App

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

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

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

為什么選用python進(jìn)行科學(xué)計(jì)算

2019-01-02 | rar | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

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

為什么選用python進(jìn)行科學(xué)計(jì)算

  1. 簡(jiǎn)介

  作為科學(xué)的軟件開(kāi)發(fā),最大的障礙之一是如何使科學(xué)軟件靈活,使用方便,維護(hù)簡(jiǎn)單,易于適應(yīng)規(guī)模擴(kuò)大和復(fù)雜性增高的新問(wèn)題。當(dāng)然,是有很多原因希望這些高品質(zhì),其中很重要的一點(diǎn)是,他們?cè)试S科學(xué)家花費(fèi)更少的時(shí)間爭(zhēng)取更多的時(shí)間去亞牛軟件,投入更多的時(shí)間在科學(xué)上。

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

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

  2. 科學(xué)軟件開(kāi)發(fā)的特點(diǎn)

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

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

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

  3. Python

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

  4. 集成動(dòng)態(tài)應(yīng)用

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

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

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

評(píng)論

查看更多

下載排行

本周

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

本月

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

總榜

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