[问题] 绘制双曲线

楼主: 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