これが私がしなければならないことの要点です。Pythonでは、パラメトリック関数f(x(t、omega)、y(t、omega))があり、omegaには5つの特定の値があります(不規則な間隔で)。私がやりたいのは、基本的に、オメガの5つの値のそれぞれについて同じプロットにこの関数fをプロットすることです。
今、私はこれのための実用的なコードを持っていますが、それはもっと簡潔になるかもしれないと思います(そして私はこの演習からPythonについてできるだけ多くを学びたいので、それがもっと簡潔になる方法を知ることに非常に興味があります) 、そしてまた、ここでx(t、omega)の範囲を修正する方法がわかりません!この最後の点が最も問題です。
これが私の「動作する」コードです:
x=linspace(0,10,100)
H0=71
omega0=1.01
Rc=0.5*(omega0/(omega0-1))*(1-cos(x))
tc=(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x))
plot(tc,Rc)
omega0=1.1
Rc=0.5*(omega0/(omega0-1))*(1-cos(x))
tc=(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x))
plot(tc,Rc)
omega0=1.5
Rc=0.5*(omega0/(omega0-1))*(1-cos(x))
tc=(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x))
plot(tc,Rc)
omega0=2.0
Rc=0.5*(omega0/(omega0-1))*(1-cos(x))
tc=(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x))
plot(tc,Rc)
omega0=3.0
Rc=0.5*(omega0/(omega0-1))*(1-cos(x))
tc=(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x))
plot(tc,Rc)
show()
ご覧のとおり、tcとRcはx(t、omega)とy(t、omega)として機能し、パラメトリック変数としてxを使用しました。 。これをプロットすると、すべての行が技術的にそこにあるとしても、そこから多くの情報を取得するのは難しいことがわかります。どんな助けでも大歓迎です!
編集:私は必要なものを手に入れました。同様の問題があるためにこのスレッドに出くわした人のために、私の改訂されたコードは、主に以下の回答といくつかのさらなる検索のおかげです:
import numpy as np
import pylab as pl
from pylab import *
x=linspace(0,50,1000)
H0=71 #units km/s/Mpc
omegas = [1.01,1.1,1.5,2.0,3.0]
Rcs = [0.5*(omega0/(omega0-1))*(1-cos(x)) for omega0 in omegas]
tcs = [(0.5/H0)*(omega0/(omega0-1)**(3/2))*(x-sin(x)) for omega0 in omegas]
for pair in zip(tcs,Rcs):
pl.plot(pair[0],pair[1])
pl.xlim(0,0.55)
pl.ylim(0,60)
pl.show()