前提・実現したいこと
PYTHONを使用して方程式を解いています。
ニュートン法で解きたいです。
ブログ等を参考にし、自分なりにコードを書いてみたのですが
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\Users\jojo2\Desktop\�R�clab\PYTHON\�s�X�g����~�ʒu�[�������v�Z.py", line 25, in <module> if abs(x2 - x) < 0.1: File "C:\Users\jojo2\AppData\Local\Programs\Python\Python36\lib\site-packages\sympy\core\relational.py", line 195, in __nonzero__ raise TypeError("cannot determine truth value of Relational") TypeError: cannot determine truth value of Relational
該当のソースコード
from sympy import * x = Symbol('x') p10 = 500000 p20 = 60000 v10 = 0.00444 v20 = 0.00188 r1 = 1.4 r2 = 1.67 s = 0.00096 g = (p10/p20) * (v10/v20) * ((r2 - 1)/(r1 - 1)) * (((1 + (s*x / v10)) ** (1 - r1)) - 1) + (((1-(s*x / v20))** (1-r2)) -1) f = diff(g) print (f) # 微分完了 # ここからニュートン法 x = 1.8 while True: x2 = x - g / f if abs(x2 - x) < 0.1: break x = x2 print(x)
試したこと
誤差の指定が悪かったのかと、誤差を変更してみたのですが同様に失敗し、
なぜエラーが発生するのか色々と検索をかけてみましたが
エラー発生原因も理解できておりません...
補足情報(FW/ツールのバージョンなど)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/10 05:27
2018/07/10 06:04
2018/07/11 00:13