pythonにて,nonlinsolve関数を用いて連立方程式を解くプログラムを作成し動かしたところ,こちらのエラーが出ました.
python
1AttributeError: 'FiniteSet' object has no attribute 'as_coeff_Mul'
こちらのエラーはどういった場合に起こるものでしょうか.
研究の内容を含むため,ソースコードをほとんど載せることができないのですが,式にはsp.exp(),sp.sin()等を含みます.可能な限りで教えていただけると幸いです.
何卒宜しくお願い致します.
python
1import numpy as np 2import sympy as sp 3 4x=sp.Symbol('x') 5y=sp.Symbol('y') 6z=sp.Symbol('z') 7 8f=open('test.txt','w') 9for a in np.arange(値): 10 equation1 = (x,y,xの式) 11 equation2 = (x,y,zの式) 12 equation3 = (x,y,zの式) 13 sp.nonlinsolve([equation1,equation2,equation3],[x,y,z]) 14 15 #print(format(float(z),'.7f'),format(float(a),'.7f'),file=f) 16f.close
参考: Sympyの方程式がなぜか解けない https://teratail.com/questions/185590
melianさんありがとうございます.
こちらの参考記事を踏まえ,無知で申し訳ないのですが,有限集合型というのは具体的にどういったものになるのでしょうか.
質問文に記載させていただいたコードの式には参考記事の回答にあるような波括弧{}は用いておらず,float型の直値と変数,np.arangeで回している値(a)を用いています.この場合有限集合に該当するものはどちらにあたるのでしょうか.
読みにくい文章で申し訳ありませんが,何卒ご回答いただけると嬉しいです.
宜しくお願い致します.
はい、数学で言うところの有限集合のことらしいです。
Finite set - Wikipedia https://en.wikipedia.org/wiki/Finite_set
波括弧を用いていないのであれば原因は他にあることになりますね。。。
エラーを素直に読めば「コードを実行すると FiniteSet が生成されていて、 FiniteSet では許されない操作をしている」ということになります。
状況を最も簡単に説明できる事象は「コードの中に FiniteSet を生成する式がある」です。
ですが式が公開されていませんから、第三者がこれ以上指摘できることはないように思います。
「ありがちな落とし穴」を挙げてくれる人がでてくるかも? ぐらいの期待しかなさそうです。

回答1件
あなたの回答
tips
プレビュー