(https://www.youtube.com/watch?v=_EecjFX93II)
本文譯自:https://writings.stephenwolfram.com/2022/12/the-latest-from-our-rd-pipeline-version-13-2-of-wolfram-language-mathematica/
Mathematica的研發成果
2020年 Mathematica 發行了12.1和12.2版本;2021年發行了12.3和13.0版本。2022年6月底Mathematica發行了13.1版?,F在13.2版正式發布。Mathematica 一直都有一個龐大的研發清單,有些是短期目標,有些是中期目標,還有些是長期的(比如十幾年的)。Mathematica 希望無論何時都可以獲取Mathematica 所處開發進度的狀態,這樣用戶就能夠盡快開始使用Mathematica 研發的成果。
13.2版更新的內容并不算多,主要集中在完善已經開發了很長時間的內容,以及精細化一系列現有的功能。但即使這樣也有一些讓大家驚喜的新改進,并且有一些正在開發的新領域的雛形——特別是與天文學和天體力學有關的內容。
但是,盡管這只是一個"小型發布",13.2 版仍然在Wolfram語言中引入了41個全新函數,同時也大幅增強了64個現有的函數。而且,Mathematica 一以貫之投入了大量的精力以連貫的邏輯設計這些函數,使得這些新內容依然符合在過去35年里一直在構建的框架。
天文計算的介紹
2000多年來,天文學一直是計算發展的動力(從Antikythera裝置開始)......而在13.2版本中,它將以一種重要的形式進入Wolfram Language。是的,Wolfram語言(和Wolfram|Alpha)擁有天文數據已經超過十年。但現在的新內容是將天文計算完全整合到系統中。我們的天文計算能力是以我們的地理計算能力為模型的。但是天體計算要復雜得多。山岳不會移動(至少感覺上是靜止的),但行星肯定會移動。相對論在地理學中也不重要,但在天文學中卻很重要。在地球上,緯度和經度是描述事物位置的標準方式。但是在天文學中,特別是在一切都在移動的情況下,描述事物的位置要復雜得多。還有一個問題是物體"在哪里",而不是物體看起來在哪里——因為從光傳播延遲到地球大氣層的折射等會造成影響。
代表天文物體所在的重要函數是AstroPosition。這里是火星現在的位置。
這個輸出是什么意思?這是"此時此地"的位置。默認情況下,這個輸出告訴我火星的方位角(與北方的角度)和高度(與地平線的角度),依據Here描述我在哪里,根據Now來指定時間。但是,我怎樣才能得到一個不那么"個性化"的 "火星在哪里 "的表述?因為即使我現在只是重新運算我之前的輸入,我也會得到一個稍微不同的答案,而原因是地球的旋轉。
其中一個思路是使用赤道坐標,這是基于一個以地球中心為中心但不隨地球旋轉的位置。(一個方向是由地球的自轉軸定義的,另一個方向是春分時太陽所在的位置)。得到的結果是一個"天文學家友好"的火星赤經/赤緯位置:
這對一個陸地天文學家來說也許已經足夠好了。但是,如果你想以一種不參考地球的方式來指定火星的位置呢?在這種情況下你可以使用現在標準的ICRS框架,它以太陽系的質量中心為中心:
在天文學中,問題基本上是 "我應該把我的望遠鏡指向哪個方向?",而在球面坐標中指定的內容也是這個。但是,特別是如果一個人需要 "在太陽系中出沒"(例如考慮一個航天器),那么能夠給出這個人所在的實際直角坐標會更有用:
以下是原始坐標(默認為天文單位):
AstroPosition(https://reference.wolfram.com/language/ref/AstroPosition.html) 是由大量的計算支持的,特別是由涵蓋所有行星及其衛星以及太陽系的其他重要天體的星歷數據的計算:
順便說一下,特別是在你第一次詢問一個模糊的天體的位置時,在下載必要的星歷數據方面可能會有一些延遲。我們使用的主要星歷提供了2000-2050年期間的數據。但我們也可以獲得其他涵蓋更長時期的星歷。因此,舉例來說,我們可以知道伽利略第一次觀測木衛二時它的位置:
我們還擁有超過10萬顆恒星、星系、脈沖星和其他天體的位置數據——將來還會有更多的數據:
這個內容還可以更復雜。以下是使用一個以火星中心為中心的框架,從火星上看到的金星的位置:
如果我們在火星上選一個特定的點,那么我們可以得到相對于火星地平線的方位高度坐標的結果:
另一個復雜的問題是,如果你從地球表面看東西,你是通過大氣層看的,而大氣層會折射光線,使物體的位置看起來不同。默認情況下,當你使用基于地平線的坐標時,AstroPosition會考慮到這一點。你可以關閉這個設置,然后會得到不同的結果,例如,對于日落時分的太陽,會有很大的不同:
然后還有光速和相對論的問題需要考慮。比方說,我們想知道海王星現在 "在哪里"。那么,我們是指海王星 "實際在哪里",還是指 "我們根據海王星發出的光線觀察到的海王星的位置"?對于來自地球的觀測結構,我們通常關注的是包括"光的時間"效應的情況——兩者之間確實有區別:
因此,AstroPosition——類似于GeoPosition(https://reference.wolfram.com/language/ref/GeoPosition.html)——為我們提供了一種在天文學上表示事物位置的方法。接下來要討論的重要功能是AstroDistance(https://reference.wolfram.com/language/ref/AstroDistance.html)——類似于GeoDistance的函數。
以下函數給出了金星和火星之間的當前距離:
這是目前我們所處位置的距離(根據Here函數:https://reference.wolfram.com/language/ref/Here.html)和火星上的維京2號登陸器的位置:
以下是從Here函數到τ Ceti星的距離:
更準確地說,AstroDistance實際上是告訴我們在觀察者所在的某個當地時間,從某個物體到觀察者的距離(而且由于光的延遲,當地時間的信息很重要):
而且得到的結果會相當精確。以下是到阿波羅11號登月地點的距離,計算了5次,中間停頓了1秒鐘,顯示為10位數的精度:
以下繪制了未來10年內每日到火星的距離變化:
另一個函數是AstroAngularSeparation(https://reference.wolfram.com/language/ref/AstroAngularSeparation.html),該函數給出了從一個給定位置看到的兩個天體之間的角距離。下面是木星和土星(從地球上看)在20年內角距離的結果:
天體圖形的開始
除了能夠計算天文物體之外,13.2版還包括了將天文物體可視化的第一個步驟。在以后的版本中會有更多這方面的內容。但是13.2版已經在這方面有了一些強大的功能。
第一個例子是從我所在的地方看到的參宿四星周圍空間的樣子:
放大后,可以看到更多周邊的星體:
對于物體應該如何渲染,有很多選項。下面我們看到的是一個真實的天空圖像,網格線疊加在一起,與地球的赤道對齊:
而在這里,我們看到的是一種更加天馬行空的解讀:
就像地球地圖一樣,投影很重要。以下是整個天空的朗伯方位角投影:
藍線表示地球赤道的方向,黃線表示黃道的平面(基本上是太陽系的平面),紅線表示我們銀河系的平面(也就是我們看到銀河的地方)。
如果我們想知道我們實際上 "在天空中可以看到什么",我們需要一個立體投影(在這種情況下,以南方方向為中心):
我們的天文數據和計算中有很多細節(未來這樣的細節會越來越多)。比如,如果我們放大木星,我們可以看到其衛星的位置(但是表示它們的圓點太小,無法在這里呈現):
看看這與400多年前伽利略對這些衛星的最初觀察是如何對應的,這種呼應很有意思。以下是來自伽利略的觀察:
老式的排版確實帶來了一點麻煩:
但天文學的計算不會隨時間改變。以下是伽利略說他在帕多瓦看到木星的衛星時計算出來的位置:
是的,結果是一致的!
順便說一下,這里還有一個可以很快得到驗證的計算結果。以下是即將到來的一次日食的最大食分的時間:
而這里是當時從某一特定地點看的情況:
日期、時間和單位:總有更多可以研發的內容
即使沒有任何我們必須處理的天文學中的相對論問題,日期也是一個很復雜的主體。要一致地 "命名 "時間也是出乎意料的困難。你說的是哪個時區?你將使用什么日歷系統?然后你說的是什么粒度的時間?一天?一個星期?一個月(不管這是什么意思)?一秒鐘?一個瞬間(或者也許是我們物理項目(https://www.wolframphysics.org/)中的一個基本時間)?
在大家可能認為是微不足道的函數中會給出這些問題的答案:13.2版本中的RandomDate(https://reference.wolfram.com/language/ref/RandomDate.html) 和RandomTime(https://reference.wolfram.com/language/ref/RandomTime.html)。如果你不特別指定,RandomDate將給出一個瞬間的時間,在您當前的時區與您的默認的日歷系統等中隨機挑選一個今年的時間。
如果你想要一個1988年6月的隨機日期,則可以通過給出代表該月的日期對象來做到這一點:
如果你不想要一個瞬間的時間,而是想要一整天的時間。新的選項DateGranularity(https://reference.wolfram.com/language/ref/DateGranularity.html) 允許這樣做:
你可以要求在接下來的6小時內隨機選擇一個時間:
或10個隨機時間:
你也可以要求在一些日期區間或區間集合中隨機選擇一個日期:
而且,我們可以正確地在任何區間的集合上進行均勻采樣:
另一個可以很復雜的內容是單位。經過多年的努力,我們已經系統地解決了很多問題,并基本上支持每一種還在使用的單位(現在有超過5,000種基本類型)。但有一個涉及溫度的問題。在物理學教科書中,傳統的做法是仔細區分以開爾文測量的絕對溫度和攝氏度或華氏度等溫度度量。這一點很重要,因為雖然絕對溫度可以像其他單位一樣加減乘除,但溫標本身不能。(用0°C乘以0來表示熱量本身就有很大問題。) 另一方面,溫度的差異——即使是用攝氏度測量的——也可以相乘。如何才能解決這些問題呢?
在以前的版本中,我們有一個完全不同的單位(或者更準確地說,不同的物理量維度)來表示溫度差異(就像質量和時間有不同的維度)。但現在我們有了一個更好的解決方案?;旧衔覀兊淖龇ㄊ且胄碌膯挝弧匀皇?"溫度維度 "的單位——來代表溫度差異。我們還引入了一個新的符號(一個小小的Δ下標)來表示它們。
如果你取兩個溫度之間的差異,結果會有溫度差異單位:
但如果你將其轉換為絕對溫度,它就只是普通的溫度單位了:
解開這個問題后,實際上可以對任何溫標上測量的溫度進行任意運算——盡管結果也是以絕對溫度的形式返回:
值得理解的是,絕對溫度可以轉換為溫標值或溫標差:
所有這一切意味著,你現在可以在公式中使用任何比例的溫度,它們可以好好進行計算:
13.2 軟件試用與購買
Wolfram Mathematica:
http://www.uone-tech.cn/Mathematica.html
掃碼下載試用版
有關軟件購買和使用的問題,歡迎聯系:
訂購熱線: 010-56548231, 18610597626
軟件咨詢: crystal@uone-tech.cn
近期活動