0
eng3 = [solve(eng==(k-1)*md*Vm^2/(2*Patm*Vc*(Pc-Pc^(1/k))),Vc,solution_dict=1) for Pc in  xrange(2,10)]

私はセージ数学のいくつかの効率グラフのプロセスを自動化しようとしていますが、この式を取得しました。Matplotlib.pyplot値のリストが必要です。以下で説明するリストで辞書を取得するか、次の形式のリストを取得します。

List:
[[Vc == (5231100000/35166511904977)], [Vc == (111907000000/1692075843832947)], [Vc == (364112000000/8911538005781703)], [Vc == (753818000000/25992803547821049)], [Vc == (138358000000/6222694018119437)], [Vc == (659020000/36808310575981)], [Vc == (25902500000/1736640592770261)], [Vc == (59144000000/4642920082445667)]]

Dictionary:    
[[{Vc: 1743700000/105499535714931}], [{Vc: 319775000/43516062236099}], [{Vc:  34670000000/7636845816518169}], [{Vc: 41083500000/12749600170083701}], [{Vc: 1703720000/689628024927753}], [{Vc: 25247000000/12691109152994019}], [{Vc: 44767000000/27012747987604137}], [{Vc: 5993300000/4234372317920577}]]

私はそれらの分数を取り、それらを数値近似に変換し、sage math [python] でそれらの値を含むリストを作成したいと考えています。このn()関数は分数を小数に変換しますが、値を分離して に渡す方法がわかりませんn()

4

1 に答える 1

1

リストは から来てsolveいますが、質問は実際には純粋な Python のものです。これらのそれぞれを取得するには、リストが呼び出されている場合、次のようにVlistすることができます

[v[0].rhs().n() for v in Vlist]

辞書の場合はやや面倒です

[v[0].values()[0].n() for v in Vlist]

この構造は「リスト内包表記」として知られています。これらは、それぞれに対して単一のソリューションがあることを前提としています! 形式が異なる場合 (たとえば、 のようなものが得られる場合Vc == 2*Vc^2)、より賢くする必要があります。

背景 - どうやらこの ask.sagemath.org の質問は関連しています。

于 2012-08-29T12:11:33.883 に答える