[問題] 繪製雙曲線

作者: cj10243 (cj)   2017-06-21 00:50:00
各位大大好
我想繪製雙曲線搭配貫軸、共軛軸及漸近線。
因為背景知識只有 X^2 Y^2
▁▁▁ - ▁▁▁ = 1
a^2 b^2
我參考了維基百科雙曲線參數式
利用x=a*cosh(t) + t
y=b*sinh(t) + k
寫了以下的code
import matplotlib.pyplot as plt
import numpy as np
theta = np.arange(0, 2*np.pi, np.pi/100)
a,b = 4,2
x = a * np.sinh(theta)
y = b * np.cosh(theta)
plt.plot(x,y) 
卻是斜直線的結果
http://imgur.com/a/EPT4F
想知道原因為何且該如何修正?
謝謝
作者: tn00364361 (小氵斿)   2017-06-21 08:49:00
你覺得你貼上來的code可以執行?
作者: APM99 (血統純正台北人)   2017-06-21 12:06:00
theta 取的不好 ,theta的含意很特別想要得到你想要的結果,直接把theta當成普通參數取實數即可
作者: cj10243 (cj)   2017-06-21 12:34:00
請問A大意思是把theta 改成別的變數例如t?
作者: APM99 (血統純正台北人)   2017-06-21 12:37:00
參數名稱不重要阿 你把值取 -100~100 就可以了(100有點大你看wiki的雙曲線 它們很快就貼近了漸進線你這篇畫的圖沒大問題 因為雙曲線「看起來」就是直線
作者: cj10243 (cj)   2017-06-21 15:58:00
了解,我嘗試透過增加dpi改變彎曲程度,但圖還是很直所以真的如A大所說只能畫出看起來很直的雙曲線嗎?還是有什麼關鍵字呢?感謝
作者: APM99 (血統純正台北人)   2017-06-21 16:32:00
你需要做的是設定x,y軸 例如 plt.axis([-5, 5, -5, 5])把圖的x軸,y軸設在 -5~5之間 它就會是曲線之外的範圍呢?它「看起來」就會是直線,雙曲線長的就是這樣建議 1.設定x,y軸 2.修正theta數值 3.你需要另一半的雙曲線疊圖 . 你引用的公式中 cosh 恆正,所以你只會有單曲線<不要對雙曲線有 曲線的幻想 現實是殘酷的,可以試求斜率>theta = np.arange(-2*np.pi, 2*np.pi, np.pi/100)

Links booklink

Contact Us: admin [ a t ] ucptt.com