
發布
注冊
/
登錄Wolfram語言
關注創建者:墨光科技 創建時間:2020-03-11

Wolfram語言的實例教程
For 循環和 While 循環不是 Wolfram 語言中循環的最佳方法。相反,使用Table、Map或其他 Wolfram 函數來加速您的代碼。
不要將您自己創建的 Wolfram 語言函數的首字母大寫,因為 Wolfram 定義的函數都是使用駝峰命名的。此外,切勿在函數名稱中使用_ ,因為這表示 Wolfram 語言中的模式序列。
在 Wolfram 語言中定義多個函數時,使用一系列不同的迭代變量(即i 、j 、k 、l等)或使用Module函數。這樣,如果您調用多個自創函數,迭代變量就不會無意中混淆。
這是我本科時用 Python 編寫的一些示例代碼:
這是我最近寫的可比較的 Wolfram 語言版本:
任務的下一步是編寫蒙特卡羅模擬。(完整的代碼示例可在我的示例 Monte Carlo 模擬項目附錄中找到。)當我第一次用 Wolfram 語言起草這個程序時,我基本上逐字重寫了我的 Python 代碼、For 循環等。因此,當我運行蒙特卡羅模擬時(高級 Wolfram 語言用戶會理解),即使模擬只有 1000 個點,花費的時間也明顯比我預期的要長。
正是在這一點上,我意識到 Wolfram 語言與其他口語和手語類似,具有多種構造句子的方法,并且它需要不同的結構來編程。當您有另一種計算語言的背景時,不要認為這種語言與您知道并習慣使用的另一種編程語言的工作方式相似,這一點很重要。
當我重寫 Wolfram 語言代碼使其不是我的迭代 Python 代碼風格的逐字副本時,我的蒙特卡羅模擬在速度上與我的原始 Python 代碼示例相當。
任務的最后一步在 Wolfram 語言中很容易:創建直方圖并從我的蒙特卡羅模擬輸出中獲取均值、標準差以及上下 5% 分位數。
展開 R 是一種用于統計計算和圖形的開源編程語言。該語言用于數據科學和機器學習。Wolfram 語言是一種通用的多范式編程語言,用于符號計算、函數式編程和基于規則的編程。在這些語言之間進行交流總是有用的。R 語言計算結果可以從 Wolfram 語言中調用。該項目的目標是在 R 會話中獲得 Wolfram 語言計算結果,以使雙向通信成為可能。
Wolfram 語言代碼使用 ZeroMQ 套接字從 R 發送到 Wolfram 語言。然后 Wolfram 語言計算結果使用相同的套接字通信發送到 R。然后在 R 中使用結果。目前,我們只能在 Wolfram 語言(WL)和 R 之間轉換少數數據類型,但本文會有一些擴展思想的討論。
具體 R 和 Wolfram 語言之間的通信和源代碼請評論區留言登記獲取。
該項目使 R 程序員能夠直接評估 WL 代碼并在他們的 R 會話中獲得輸出。我已經檢查過 Integer、Real、String、List、Association 是否可以進行數據轉換。我們還檢查了 NDSolve 和 FindFit 等函數。目前,無法將復數、圖像和繪圖從 WL 轉換為 R。我想在將來添加這些數據類型支持。目前我們需要在 R 會話中運行客戶端腳本,但我們希望將其制作為 R-Package 以便可以輕松導入。
展開 幾年前,作為一名QA(質量檢測)開發人員,我為 Wolfram 語言創建了 MUnit 單元測試框架,這是一個用于編寫和運行語言單元測試的框架。從那時起,我創造了更多的工具來幫助開發人員編寫更好的 Wolfram 語言代碼,同時在這個過程中檢查出錯誤。
編寫好的測試需要大量的知識和大量的時間。由于我們需要能夠盡快測試和解決問題,以便按期發布新功能,我們轉向靜態分析,以便能夠做到這一點。
什么是靜態分析
靜態分析是在運行源代碼之前對其進行檢查的過程,以試圖預測其行為并發現問題。作為一種測試方法,它是非常有用的。在代碼運行時發現問題并不總是可行的。運行代碼的成本也很高--如果代碼失敗了,那就更是如此。
考慮到構成 Wolfram 語言的大量代碼(有120萬行的內核啟動 Wolfram 語言代碼,橫跨1900個文件,還有85萬行的程序包 Wolfram 語言代碼,橫跨3700個文件),必須要有一個策略來測試所有這些代碼的錯誤。Wolfram 公司對 Wolfram 語言的每一個角落都有專門的測試(其中有些是我寫的!)
CodeInspector paclet 是那些重要的靜態分析工具之一,它使開發人員能夠完成更好的工作。CodeInspector 包含在最近發布的 Mathematica 12.2中,它可以掃描 Wolfram 語言代碼并報告問題,而不需要用戶手動運行 paclet。CodeInspector 與 CodeParser 和 CodeFormatter 一起構成 CodeTools 套件,供內部和外部用戶使用,以提高其 Wolfram Language 代碼的質量。
一般來說,靜態分析不能發現程序中所有可能的 bug (這是通過 Rice 定理對停止問題的不可控性所產生的結果)。
展開 這比編輯源代碼要簡單多了:
0
4
你可以做出自己的貢獻
我之前在開源那篇文章中也說過,我們的核心語言不依賴于用戶的貢獻,盡管我們喜歡詳細描述的錯誤報告。但是在 Wolfram 語言的生態系統中用戶有很多其他方法做出自己的貢獻。截止這篇博文的時間,在之前提到的 Wolfram 函數資源庫中,已經增加了超過 2000 條來自用戶和 Wolfram 程序員貢獻的函數。這些新函數都像已經內置一樣立即可以使用(但是實際上是自動下載并在第一次使用的時候進行安裝的),也都帶有源代碼。
比如,下面這個就是我貢獻的用來創建有內嵌地圖的地理表面繪圖的函數:
而且還有超過1.2萬的演示文件以教育為目的被貢獻出來,也都有自己的源代碼。
你不一定要用我們的交付系統。你可以找到很多通其他方式分享的開源 Wolfram 語言程序包的例子,比如 GitHub。有一些可以在 Wolfram 社區和 PackageData 中看到,而且我們也在準備可以分享更大型的 Wolfram 語言代碼的方法。
0
5
有技術支持的社區
實際上有兩個有組織的社區,每個社區的重點稍有不同。
在 Stack Exchange 上完全獨立的 Mathematica 和 Wolfram 語言站點。
展開 使用以下 Wolfram 語言代碼創建各種餅干的相關碳水化合物、蛋白質和纖維含量的 3D 圖形. 然后,在 Wolfram Notebook 中,將鼠標懸停在數據點上以在圖中找到您最喜歡的數據點:
05:希望你吃得健康吃得開心
我希望你和我一樣喜歡通過 Wolfram 語言來欣賞食物,祝你胃口大開!
購買軟件/免費試用【13.1.0中英文 Wolfram 軟件】
請掃碼申請

Wolfram語言的相關專題、標簽、搜索
Wolfram語言的最新內容
給出一段自然語言,Wolfram|Alpha 自然語言理解系統會嘗試將其解釋為計算語言。從這個解釋開始,再由 Wolfram 語言執行規定的計算,并返回結果 ——可能還會合成自然語言來表達結果。
實際上,這個設置不僅對人類有用,對于 ChatGPT 這樣的 AI 也很有用。
使用Wolfram語言,我們可以從 USGS 獲取 HP 蓄水層的外部多邊形輪廓,并將其轉換為合適的地理投影:
然后我們可以獲取與 HP 蓄水層重疊的美國州的區域,并在地圖上可視化:
德克薩斯高原農業
我參加了 2020 年 Wolfram 神經網絡訓練營,它啟發我將數據科學和機器學習的元素融入我的課程中。機器學習的輔助函數使實驗和向學生介紹此類應用程序變得非常容易。我們選擇通常引入神經網絡和機器學習主題的圖像識別和分類問題。
然而,我很快對缺乏面向化學的圖像數據集這一事實感到震驚,并在使用了修改后的國家標準與技術研究所 ( MNIST ) 手寫數據集示例后,決定創建這種類型的數據集
使用Wolfram語言,我們可以從 USGS 獲取 HP 蓄水層的外部多邊形輪廓,并將其轉換為合適的地理投影:
然后我們可以獲取與 HP 蓄水層重疊的美國州的區域,并在地圖上可視化:
德克薩斯高原農業
你可以找到很多通其他方式分享的開源 Wolfram 語言程序包的例子,比如 GitHub。有一些可以在 Wolfram 社區和 PackageData 中看到,而且我們也在準備可以分享更大型的 Wolfram 語言代碼的方法。
不要將您自己創建的 Wolfram 語言函數的首字母大寫,因為 Wolfram 定義的函數都是使用駝峰命名的。此外,切勿在函數名稱中使用_ ,因為這表示 Wolfram 語言中的模式序列。
在 Wolfram 語言中定義多個函數時,使用一系列不同的迭代變量(即i 、j 、k 、l等)或使用Module函數。
Wolfram 語言是一種通用的多范式編程語言,用于符號計算、函數式編程和基于規則的編程。在這些語言之間進行交流總是有用的。R 語言計算結果可以從 Wolfram 語言中調用。該項目的目標是在 R 會話中獲得 Wolfram 語言計算結果,以使雙向通信成為可能。
Wolfram 語言代碼使用 ZeroMQ 套接字從 R 發送到 Wolfram 語言。
下例顯示了 Wolfram 語言的解:
給定的方波有周期,因此。
化學工具
Wolfram|Alpha
——使用自然語言的化學計算器
Wolfram|Alpha 筆記本編輯器
——數字筆記本中的多步驟化學計算
Wolfram 演示項目
——交互式化學演示工具
Wolfram 語言
——化學函數的分子系列
Wolfram 函數資源庫——專業化學函數
Wolfram 數據資源庫——可計算化學數據組
另一方面,Wolfram 語言應該有更精確的定義,能夠用來建立復雜的計算塔。在 Wolfram|Alpha 內部,它所做的是將自然語言翻譯成精確的 Wolfram 語言。因此實質上,它是在捕捉"不精確的自然語言",并將其"輸送"到精確的 Wolfram 語言中。
當 ChatGPT 調用 Wolfram 插件時,它通常只是將自然語言送入 Wolfram|Alpha。