問題タブ [mpmath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 係数のリストから多項式ラムダ関数を作成するにはどうすればよいですか?
多項式に対応する係数のリストがあります。つまり、 に[1,2,0]
対応しx^2 + 2x + 0
ます。これらの係数の任意の長さの配列をラムダ関数に入れたいと思います。
具体的には、mpmathを使用しており、次のpolyval モジュールに使用されるリストがあります。
係数と数値を指定polyval()
して、多項式を評価します。
そして 、一次元関数を取るfindroot モジュールを使用する必要があります。
係数のリストからラムダ関数を作成するにはどうすればよいですか?
python - mpmathquad統合への引数の受け渡し
私はいくつかのかなり厄介な関数を統合していますが、scipy.integrate.quadは状況をうまく処理していません。tanh-sinhメソッドでmpmath.quadを使用することを計画していましたが、次のように、計算中の関数にいくつかの引数を渡す必要があります。
fは次のように定義されます
ドキュメントにそのようなものは見つかりませんでした。助言がありますか?
ありがとう!
python - sympy-nsolveメソッドを機能させることはできません
私はこのコードを実行しました:
インタプリタは私に次のように与えます:「割り当て前に参照されるローカル変数x」
私が試しnsolve(f,x,(0,1))
てみると、「与えられた許容範囲内でルートを見つけることができませんでした...」
(また、私はfindroot(f,(0,1))
成功せずに試しました(インポートfrom mpmath import *
してからmp.dps = 30; mp.pretty = True
)。
python - 利用可能なPythonでスケーリングされた相補誤差関数はありますか?
matlab には、私が知っている Python のコレクション (numpy、scipy、mpmath など) では使用できない特別な関数があります。
おそらく、このような機能が見つかる場所は他にもあるのではないでしょうか?
UPD質問が些細なことだと思うすべての人は、最初に引数 ~30 に対してこの関数を計算してみてください。
UPD2任意精度は良い回避策ですが、可能であれば避けたいと思います。「標準」の機械精度 (それ以上でもそれ以下でもない) と可能な最大速度が必要です。
UPD3mpmath
驚くほど不正確な結果が得られることが判明しました。標準の pythonがmath
機能する場合でも、mpmath
結果はさらに悪くなります。それはそれを絶対に無価値にします。
UPD4 erfcxを計算するさまざまな方法を比較するためのコード。
私にとって、それは
明らかに、math
それが機能する場所では可能な限り最高の精度が得られますが、機能する場所でmpmath
はエラーカップルが桁違いに大きくなり、math
引数が大きい場合はさらに多くなります。
python - 特定のバージョンの Python を拡張する (Linux Ubuntu/Unity 上)
最近、Ubuntu 11.10 を入手し、EPD Python、Python 2.7 (標準)、Python 3.2 など、いくつかのバージョンの Python をインストールしました。私は主に EPD ディストリビューションを使用しており、mpmath モジュールで拡張したいと考えていました。基本的には非常に簡単に聞こえますが、Linux は常にパッケージを標準の 2.7 または 3.2 バージョンにインストールします。
EPD ディストリビューションを具体的に拡張するにはどうすればよいですか? 私は Linux と Python の両方にかなり慣れていないことを告白しなければならないので、うまくいけばこれに対する簡単な解決策があります。
python - numpy.allcloseおよびmpmathを使用した多倍長
私のPythonコードでは、を使用していくつかの計算を定期的に検証していnumpy.allclose
ます。一方、これらのチェックとは別に、実装は多倍長(mpmath.mpc
)数を処理できます。番号の確認コードを実行したい場合は、次のmpmath
ようになります。
2つの多倍長配列が十分に等しいかどうかを確認する最良の方法は何ですか?
python - 配列をmpfする方法は?
私は持っている:
しかし、それは私にそれをさせません:
それで、私は何をすべきですか?
基本的に、この配列を使用し、要素ごとに、状況に応じて信じられないほど大きい数または信じられないほど小さい数を掛けます (例:1.35626567e1084
または6.2345252e-2732
)。したがって、mpf が必要になります。
より具体的には、信じられないほど大きな値と信じられないほど小さな値を作成する besseli 関数と besselk 関数を使用します。
これらの数値を保持する mpf 配列を取得するにはどうすればよいですか?
python - mpmath 行列反転の代替手段または高速化
大きな正方行列 (100-200 行/列) を頻繁に反転する必要があるコードを python で書いています。
私はマシンの精度の限界に達しているので、mpmath
任意精度の行列反転を行うために使用しようとし始めましたが、 を使用しても非常に遅いgmpy
です。
精度 30 (10 進数) でサイズ 20、30、60 のランダム行列を反転すると、~ 0.19、0.60、および 4.61 秒かかりますが、同じ操作にmathematica
は 0.0084、0.015、および 0.055 秒かかります。
これは、arch Linux マシンでpython3
and mpmath 0.17
(gmpy のバージョンは不明) を使用しています。mpmath が非常に遅い理由はわかりませんが、これに対して mathematica が管理する速度に近づくオープンソース ライブラリはありますか (1/2 の速度でも良いでしょう)。
任意の精度は必要ありません。おそらく 128 ビットで十分でしょう。また、mpmath がどのように非常に遅くなる可能性があるのか もわかりません。非常に異なる行列反転アルゴリズムを使用している必要があります。具体的には、私が使用してM**-1
います。
より高速なアルゴリズムを使用したり、高速化したりする方法はありますか。