我正在嘗試做一些可以給我 2 點的斜率和 y 截距的東西。有時它會給我正確的值,但有時它會給我一些接近正確但錯誤的東西。
有人知道我做錯了什么嗎?(另外,我覺得我應該說我才剛剛開始學習python)
y2 = input('Y2: ')
y1 = input('Y1: ')
x2 = input('X2: ')
x1 = input('X1: ')
y2 = float(y2)
y1 = float(y1)
x2 = float(x2)
x1 = float(x1)
over = y2-y1
under = x2-x1
m = over/under
y = float(y2)
x = float(x2)
m = float(m)
ym = y-m
b = ym/x
print(f'Y = {m}x {b}')
uj5u.com熱心網友回復:
似乎截距的數學b是不正確的。
使用x1, y1帶有斜率的坐標來生成b.
假設你想找到x0, y0where y0= b。然后你會做一個類似的計算(已經m像你正確的那樣計算過)。
所以(y1-b) / x1 = m。你可以重新排列它以獲得:
b = y1 - m*x1.
所以這有效:
x1, y1 = 1, 1
x2, y2 = 2, 2
over = y2-y1
under = x2-x1
m = over/under
b = y1 - m*x1
print(f'Y = {m}x {b}')
回傳這個:
Y = 1.0x 0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520216.html
標籤:python-3.x数学
