Julia(複數和有理數)

2020-12-22 酷扯兒

本文轉載自【微信公眾號:雲深之無跡,ID:TT1827652464】經微信公眾號授權轉載,如需轉載與原文作者聯繫

複數和有理數

Julia附帶了預定義的類型,表示複數和有理數,並支持所有標準數學運算和基本函數。定義了「 轉換」和「提升」,以便對預定義數字類型(原始的或複合的)的任何組合執行的操作均符合預期。

複數

全局常數

im

綁定到複數i,代表-1的主平方根。

i

為全局常量選擇名稱被認為是有害的,因為它是一個如此流行的索引變量名稱。由於Julia允許將數字文字與標識符作為係數並置,因此該綁定足以為複數提供方便的語法,類似於傳統的數學符號:

julia> 1 + 2im

1 + 2im

您可以使用複數執行所有標準算術運算:

julia> (1 + 2im)*(2 - 3im)

8 + 1im

julia> (1 + 2im)/(1 - 2im)

-0.6 + 0.8im

julia> (1 + 2im) + (1 - 2im)

2 + 0im

julia> (-3 + 2im) - (5 - 1im)

-8 + 3im

julia> (-1 + 2im)^2

-3 - 4im

julia> (-1 + 2im)^2.5

2.7296244647840084 - 6.960664459571898im

julia> (-1 + 2im)^(1 + 1im)

-0.27910381075826657 + 0.08708053414102428im

julia> 3(2 - 5im)

6 - 15im

julia> 3(2 - 5im)^2

-63 - 60im

julia> 3(2 - 5im)^-1.0

0.20689655172413796 + 0.5172413793103449im

提升機制確保不同類型的操作數的組合可以正常工作:

julia> 2(1 - 1im)

2 - 2im

julia> (2 + 3im) - 1

1 + 3im

julia> (1 + 2im) + 0.5

1.5 + 2.0im

julia> (2 + 3im) - 0.5im

2.0 + 2.5im

julia> 0.75(1 + 2im)

0.75 + 1.5im

julia> (2 + 3im) / 2

1.0 + 1.5im

julia> (1 - 3im) / (2 + 2im)

-0.5 - 1.0im

julia> 2im^2

-2 + 0im

julia> 1 + 3/4im

1.0 - 0.75im

注意

3/4im == 3/(4*im) == -(3/4*im)

,因為文字係數比除法綁定更緊密。

提供了用於處理複雜值的標準函數:

julia> z = 1 + 2im

1 + 2im

julia> real(1 + 2im) # real part of z

1

julia> imag(1 + 2im) # imaginary part of z

2

julia> conj(1 + 2im) # complex conjugate of z

1 - 2im

julia> abs(1 + 2im) # absolute value of z

2.23606797749979

julia> abs2(1 + 2im) # squared absolute value

5

julia> angle(1 + 2im) # phase angle in radians

1.1071487177940904

通常,

abs()

複數的絕對值()是它到零的距離。

abs2()

給出絕對值的平方,特別適用於避免求平方根的複數。

angle()

返回弧度的相角(也稱為自變量arg函數)。還為複數定義了其他基本功能的全部數域:

julia> sqrt(1im)

0.7071067811865476 + 0.7071067811865475im

julia> sqrt(1 + 2im)

1.272019649514069 + 0.7861513777574233im

julia> cos(1 + 2im)

2.0327230070196656 - 3.0518977991518im

julia> exp(1 + 2im)

-1.1312043837568135 + 2.4717266720048188im

julia> sinh(1 + 2im)

-0.4890562590412937 + 1.4031192506220405im

請注意,數學函數通常在應用於實數時返回實數值,而在應用於複數時返回複數值。例如,即使

sqrt()

應用於

-1

或,行為也不同:

-1 + 0im

-1 == -1 + 0im

julia> sqrt(-1)

ERROR: DomainError:

sqrt will only return a complex result if called with a complex argument. Try sqrt(complex(x)).

Stacktrace:

[1] sqrt(::Int64) at ./math.jl:434

julia> sqrt(-1 + 0im)

0.0 + 1.0im

從變量構造複數時,文字數字係數符號不起作用。相反,必須明確寫出乘法:

julia> a = 1; b = 2; a + b*im

1 + 2im

但是,建議這樣做。改用

complex()

函數直接從其實部和虛部構造一個複雜值:

julia> a = 1; b = 2; complex(a, b)

1 + 2im

這種結構避免了乘法和加法運算。

Inf

NaN

通過特殊浮點值部分中所述的複數在複數的實部和虛部中傳播:

julia> 1 + Inf*im

1.0 + Inf*im

julia> 1 + NaN*im

1.0 + NaN*im

有理數

Julia具有一個有理數類型來表示整數的精確比例。使用

//

運算符構造有理數:

julia> 2//3

2//3

如果有理數的分子和分母具有公因子,則將它們簡化為最低項,以使分母為非負數:

julia> 6//9

2//3

julia> -4//8

-1//2

julia> 5//-15

-1//3

julia> -4//-12

1//3

這種整數比率的標準化形式是唯一的,因此可以通過檢查分子和分母的相等性來測試有理值的相等性。可以使用

numerator()

denominator()

函數提取有理值的標準分子和分母:

julia> numerator(2//3)

2

julia> denominator(2//3)

3

通常不需要對分子和分母進行直接比較,因為標準算術和比較運算是針對有理值定義的:

julia> 2//3 == 6//9

true

julia> 2//3 == 9//27

false

julia> 3//7 < 1//2

true

julia> 3//4 > 2//3

true

julia> 2//4 + 1//6

2//3

julia> 5//12 - 1//4

1//6

julia> 5//8 * 3//12

5//32

julia> 6//5 / 10//7

21//25

有理數可以很容易地轉換為浮點數:

julia> float(3//4)

0.75

轉換,從理性到浮點方面的任何整數值以下的身份

a

b

與案件的例外

a == 0

b == 0

julia> a = 1; b = 2;

julia> isequal(float(a//b), a/b)

true

構造無限有理值是可以接受的:

julia> 5//0

1//0

julia> -3//0

-1//0

julia> typeof(ans)

Rational{Int64}

NaN

但是,嘗試構造一個合理的值不是:

julia> 0//0

ERROR: ArgumentError: invalid rational: zero(Int64)//zero(Int64)

Stacktrace:

[1] Rational{Int64}(::Int64, ::Int64) at ./rational.jl:13

[2] //(::Int64, ::Int64) at ./rational.jl:40

像往常一樣,升級系統使與其他數字類型的交互變得輕鬆:

julia> 3//5 + 1

8//5

julia> 3//5 - 0.5

0.09999999999999998

julia> 2//7 * (1 + 2im)

2//7 + 4//7*im

julia> 2//7 * (1.5 + 2im)

0.42857142857142855 + 0.5714285714285714im

julia> 3//2 / (1 + 2im)

3//10 - 3//5*im

julia> 1//2 + 2im

1//2 + 2//1*im

julia> 1 + 2//3im

1//1 - 2//3*im

julia> 0.5 == 1//2

true

julia> 0.33 == 1//3

false

julia> 0.33 < 1//3

true

julia> 1//3 - 0.33

相關焦點

  • Julia(建設者)
    為此,這是的(略有修改)開頭rational.jl,它實現了Julia的有理數:julia> struct OurRational{T<:Integer} <: Realnum::Tden
  • 如何使用 Julia 語言實現「同態加密+機器學習」?
    高級 CKKSCKKS(以 Cheon-Kim-Kim-Song 的名字命名,他在 2016 年的論文「Homomorphic Encryption for Arithmetic of Approximate Numbers」提出)是一種同態加密方案,可以對以下基本操作進行同態評估:長度為 n 的複數向量的對應元素相加長度為 n 的複數向量的對應元素相乘向量中元素的旋轉
  • π的萊布尼茲公式,無窮多個有理數相加還是有理數嗎?
    關注默契小甜瓜,每天分享不一樣的小知識在我們的直覺中,有理數和有理數相加結果還是有理數,事實上,有限個有理數相加結果就是有理數。但是,無窮多個有理數相加結果還是有理數嗎?很多問題在有窮的範圍內是很容易理解的,但是如果涉及到無窮的時候,結果往往跟我們的直覺是相悖的。例如,著名的π的萊布尼茲公式。這個公式中,將圓周率π和所有奇數的倒數建立了聯繫,很明顯無窮多個有理數相加的結果可能是一個無理數。那麼這個公式是怎麼得到的呢?
  • 根號2是有理數嗎?
    根號2是有理數嗎?一.學習目標1.通過拼圖活動,讓學生感受無理數產生的實際背景和引入的必要性.2.能判斷給出的數是否為有理數;並能說出理由.3、通過回顧有理數的有關知識,能正確地進行推理和判斷,識別某些數是否為有理數,訓練他們的思維判斷能力.二、探究新知1、兩個邊長為1的正方形剪一剪,拼一拼,設法得到一個大的正方形.
  • 人教版數學七年級上冊《有理數》優秀教案
    人教版數學七年級上冊《有理數》優秀教案1.2.1 有理數 教學目標 【知識與能力目標】掌握有理數的概念,會對有理數按照一定的標準進行分類按照書本的說法,得出「整數」「分數」和「有理數」的概念。看書了解有理數名稱的由來。「統稱」是指「合起來總的名稱」的意思。試一試:按照以上的分類,你能畫出一張有理數的分類表嗎?你能說出以上有理數的分類是以什麼為標準的嗎?
  • 還有沒有比複數更高級的數及好玩遊戲?如何理解,願你不再掉頭髮
    02哈密頓的四元數,本質高階複數哈密頓在數學上的成就,主要在微分方程理論和泛函分析方面。他也是衝破傳統代數關卡的勇士,寫下了《四元數基礎》(1886)名著。下面介紹一下他創造四元數的趣事。大家知道,代數學有各種運算律。
  • 初中數學:整數,分數,有理數的分類你學會了嗎?
    什麼是有理數?整數和分數統稱為有理數,這是有理數的定義我們一定要記住這句話,從這句話中我們可以知道有理數包括整數和分數什麼是整數?沒有小數和分數,零和正整數構成自然數什麼是分數?我們可以把它記成可以寫成幾分之幾的形式的數圖中這些畫圈的小數以及無限循環小數為什麼是分數?
  • 初中數學有理數加減常考綜合題,數軸、相反數、絕對值,詳解助學
    我們之前已經學習了有理數的加減,關於有理數的加減運算,相信同學們如果認真領會,應該沒有什麼問題了,然而在考試中,關於計算的題型,大部分都是在綜合題的解題過程中用到,綜合應用成了常考的題型,而本章中,有幾個常考考點也是結合前面學習的數軸、相反數、絕對值來綜合考察,尤其是與絕對值的綜合應用,是比較重要的,也是難點。
  • 三角函數的複數形式和本質原理
    我們結合歐拉公式,可以得到複數平面上的三角函數,x(t)的複數形式是Ae^j(Ωt+Φ),它是有實部和虛部組成如果將三角函數的實部和虛部所表示的圖形,與x(t)的複數形式一一對應,就得到如下樣式,非常直觀
  • 您是否熟悉英語中單數變複數名詞的規則?
    複數名詞的規則分為規則變化和不規則變化。 本文將詳細介紹這兩種變化。1通常,在單詞末尾添加-s。knife---knives刀;leaf---leaves樹葉5為有生命的人添加es,為無生命的人添加s,這是以o結尾的。
  • 「Noun」名詞的詳細圖文講解,所有格名詞規則和不規則複數名詞!
    當「y」跟在元音後面時,複數形式由保留「y」和加-s組成。輕觸;(球)輕輕擦過(另一球)dish – dishes 盤;餐具;一盤食物;外貌有吸引力的人witch – witches 巫婆,女巫judge – judges 法官;裁判員;鑑定人half – halves 一半;半場;半學年hoof – hooves (馬等動物的)蹄;人的腳calf – calves [解剖] 腓腸,小腿;小牛;小牛皮;(鯨等大哺乳動物的)幼崽elf – elves 小精靈
  • 初中數學,關於有理數的認識你掌握好了嗎?看完這些就明白了!
    往往是非常重要和貫穿我們一生的。所以在人生的過程當中,千萬不要輕視任何事情,對待任何事情。一定要細緻入微。今天就跟大家談一談關於有理數及其運算的大致內容和加減法理解方式。有理數及其運算我們是分為五大塊去學習的,它們分別是:1.有理數和數軸2.相反數與絕對值3.有理數的加減法4.有理數的乘除法5.有理數的乘方、科學計數法和有理數的混合運算第一節課,有理數和數軸,我們學習的目標是:1、 理解有理數產生的必然性、合理性;2、會判斷一個數是正數還是負數
  • 英語中常見的複數代詞及複數名詞的用法,你知道有哪些規則嗎?
    英文和中文,哪裡不一樣?英文裡面「我們」「你們」「他們」都代表兩個人及以上,有別於第一課所學到的「單數代詞」=「你、我、他」,因此要搭配的「是」就要從「is」改成「are」了。另外要特別注意的是,名詞也是必須配合複數的概念,詞尾通常要加上s或es,來顯示出有兩個及以上!
  • 複合名詞變複數的特殊情況,和記憶要點
    做相應的複數變化。,但是小複合名詞(two-year-old)卻有複數形式。第四:和複合名詞一樣小複合名詞都是可數名詞第五:小複合名詞的變化規律(這個很重要)①與複合名詞不同,小複合名詞中如果有 man woman時,不需要將他變成複數例如
  • 初一上學期,有理數中七個熱門概念,你都掌握了嗎
    在有理數這一章中,主要講解了有理數的概念及其它相關概念,有理數的計算,科學計數法,近似數等等,本章內容也是中考常考內容之一,主要以選擇題、填空題以及簡單的計算居多。有理數中有七個熱門概念,分別為:正數和負數、有理數和無理數、數軸、相反數、絕對值、倒數和科學計數法,你都掌握了嗎?
  • 解讀插畫|Julia Sarda 獨特個性的復古風
    ,不僅要充滿幻想和智慧,而且要有趣味性。Julia Sarda的插畫人物造型都很誇張,構圖設計和搭配色彩都是濃濃的復古味。03如何找到她她在ins上叫juliasardaportabella,每月更新的篇幅很少,也不太勤快。
  • 2021年中考英語複習知識點:名詞的單數和複數
    中考網整理了關於2021年中考英語複習知識點:名詞的單數和複數,希望對同學們有所幫助,僅供參考。   可數名詞有單數和複數兩種形式。複數形式通常是在單數形式後加詞尾「-s」構成,其主要變法如下:   (1)一般情況在詞尾加-s,例如:book→books,girl→girls,boy→boys,pen→pens,doctor→doctors, boy→boys。
  • 2021年中考英語名詞知識點:名詞的單數和複數
    中考網整理了關於2021年中考英語名詞知識點:名詞的單數和複數,希望對同學們有所幫助,僅供參考。   單數和複數   可數名詞有單數和複數兩種形式。   複數詞尾s(或es)的讀音方法如下表所示。   複數詞尾s(或es)的讀音方法   (7)少數名詞有不規則的複數形式,例如:man→men,woman→women,tooth→teeth,foot→feet,child→children,mouse→mice。
  • 圖說英語許國璋英語:名詞的單數和複數形式
    名詞的單數和複數形式英語中名詞有單數和複數兩種形式,如:a pencil (一枝鉛筆), three pencils( 三枝鉛筆), many pencils (許多枝鉛筆)。英語名詞的複數形式一般是在單數形式後加詞尾-s 構成,例如:pen penspeasant peasants在以 「s」,「sh」,「ch」,「o「結尾的詞後加-es。
  • 數學輔導隨筆5——滬版七年級上冊第一章有理數有理嗎?
    滬版七年級上冊課本第一章有理數這章,通過引入負數概念,解決負數提出的真實含義,負數是什麼?至於後面一堆問題也是把數擴大到負數範圍的運算規則的制定。通篇看不到有理數標題中有理在什麼地方?感覺好像就是說:反正我們叫這些是有理數!至於為什麼隻字未提,只管用就是了。給你吃的,你還問給你吃的是什麼從哪兒來的?我看你的皮又癢了是吧!?