我是 Python 的新手。我正在共享一個代碼片段,它是從檔案中讀取資料并進行所需計算的代碼的一部分。我有 3 個具有 3 個未知數的非線性方程。我寫了下面的代碼來解決它,但代碼給了我一個錯誤:
File "<ipython-input-46-bc67ad1b6153>", line 4
eq2 = (y/(1-y) - (5/(8*np.pi * np.cos(z))) * (1 - (np.cot(z)))
^
SyntaxError: invalid syntax
我不認為語法是錯誤的,但我不確定這種解決方案是否適用于我的情況。另外,我的變數“x”應該在 1/4 和 1/3 之間
我的代碼:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
from scipy.optimize import fsolve
def equations(vars):
x, y, z = vars
eq1 = (x/(1-x) - (5/(8*np.pi*np.sin(z)**2) * (1 4*(np.tan(z))
eq2 = (y/(1-y) - (5/(8*np.pi * np.cos(z))) * (1 - (np.cot(z)))
eq3 = np.tan(z) - ((1-x) / 3 * (1 y))
return [eq1, eq2, eq3]
x, y,z = fsolve(equations, (1, 1, 1))
print(x, y, z)
uj5u.com熱心網友回復:
我在您的代碼中遇到了一些錯誤:
np.cot您可能不想1/np.tan(z)在等式 3 中使用任何函式。- 你忘記了一些括號(
eq1和eq2)所以它永遠不會作業(我可能會放一些但我只是猜測。你可能會更正那部分 - 你最初的猜測
(1,1,1)導致奇點eq1和eq2
所以這里有一個建議(檢查括號)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
from scipy.optimize import fsolve
def equations(vars):
x, y, z = vars
eq1 = (x/(1-x)) - (5/(8*np.pi*np.sin(z)**2)) * (1 4*(np.tan(z)))
eq2 = (y/(1-y)) - (5/(8*np.pi * np.cos(z))) * (1 - (1/np.tan(z)))
eq3 = np.tan(z) - ((1-x) / 3 * (1 y))
return [eq1, eq2, eq3]
x, y,z = fsolve(equations, (2, 2, 2))
print(x, y, z)
#prints: 1.4489745262423956 26.230116359918174 1.8114278561902486
uj5u.com熱心網友回復:
您在幾行代碼中的括號數量錯誤。也沒有np.cot(),請1 / np.tan()改用。固定作業代碼如下:
在線試試吧!
import numpy as np
import math
from scipy.optimize import fsolve
def equations(vars):
x, y, z = vars
eq1 = (x / (1 - x) - (5 / (8 * np.pi * np.sin(z) ** 2) * (1 4 * np.tan(z))))
eq2 = (y / (1 - y) - (5 / (8 * np.pi * np.cos(z))) * (1 - (1 / np.tan(z))))
eq3 = np.tan(z) - ((1-x) / 3 * (1 y))
return [eq1, eq2, eq3]
x, y,z = fsolve(equations, (1, 1, 1))
print(x, y, z)
輸出:
1.0 1.0 1.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/355117.html
下一篇:熊貓分組并找到最頻繁的值(模式)
