我試圖解決一個簡單的方程,但這是輸出:

等式是y = m*x b,
y, m, 和b已經定義
我想列印b。
import sympy
while True:
x1 = int(input('x1: '))
y1 = int(input('y1: '))
x2 = int(input('x1: '))
y2 = int(input('y1: '))
m = (y1-y2) / (x1-x2)
print(m)
m = sympy.symbols('m')
x = sympy.symbols('x')
y = sympy.symbols('y')
b = sympy.symbols('b')
a = y, x*m b
print(sympy.solve(a, b))
uj5u.com熱心網友回復:
你可以嘗試像:
import sympy
# while True:
x1 = int(input('x1: '))
y1 = int(input('y1: '))
x2 = int(input('x1: '))
y2 = int(input('y1: '))
m = (y1-y2) / (x1-x2)
print(f"m: {m}")
b = sympy.symbols('b')
a = y, x*m b
print(sympy.solve(y1 -x1*m - b, b))
測驗:
x1: 1
y1: 7
x1: 2
y1: 12
m: 5.0
# out: [2.00000000000000]
uj5u.com熱心網友回復:
我們需要給 sympy 兩個方程,每個x,y組合一個。首先,創建一般線方程a = Eq(y, x*m b)。然后將各個值替換為x和y以找到兩個方程。
import sympy
x1, y1 = 1, 4
x2, y2 = 5, 8
x, y, m, b = sympy.symbols('x y m b')
a = sympy.Eq(y, x * m b)
eq1 = a.subs({x: x1, y: y1}) # Eq(4, b m)
eq2 = a.subs({x: x2, y: y2}) # Eq(8, b 5*m)
print(sympy.solve([eq1, eq2], (m, b))) # {m: 1, b: 3}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/399880.html
