Chúng ta có thể dễ dàng vẽ nó trên biểu đồ mà không có Python:
Điều này cho chúng ta thấy câu trả lời nên là gì [13].
Nhưng làm thế nào để chúng ta tính toán điều này? Đầu tiên, chúng tôi tìm thấy độ dốc với điều này:
Các số được thay thế vào phương trình đưa ra điều này:
Vì vậy, chúng tôi biết với 0,625 chúng tôi tăng giá trị y bằng, chúng tôi tăng giá trị x lên 1.
Chúng tôi đã được cho rằng Y là 100. Chúng tôi biết rằng 102,5 liên quan đến 17. 100 - 102.5 = -2.5
. -2.5 / 0.625 = -4
và sau đó 17 + -4 = 13
.
Điều này cũng hoạt động với các số khác:
def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
0, def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
1, def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
2.Chúng ta cũng có thể đi ngược lại bằng cách sử dụng đối ứng của gradient [
def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
3].Chúng tôi đã được cho rằng X là 13. Chúng tôi biết rằng 102,5 liên quan đến 17.
def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
4. def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
5 và sau đó def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
6.Làm thế nào để chúng ta làm điều này trong Python?
def findXPoint[xa,xb,ya,yb,yc]:
m = [xa - xb] / [ya - yb]
xc = [yc - yb] * m + xb
return
Và để tìm một điểm y cho điểm X:
def findYPoint[xa,xb,ya,yb,xc]:
m = [ya - yb] / [xa - xb]
yc = [xc - xb] * m + yb
return yc
Chức năng này cũng sẽ ngoại suy từ các điểm dữ liệu.
Nội suy tuyến tính là quá trình ước tính giá trị chưa biết của hàm giữa hai giá trị đã biết. is the process of estimating an unknown value of a function between two known values.
Với hai giá trị đã biết [x1, y1] và [x2, y2], chúng ta có thể ước tính giá trị y cho một số điểm X bằng cách sử dụng công thức sau:
y = y1 + [x-x1] [y2-y1]/[x2-x1]
Chúng ta có thể sử dụng cú pháp cơ bản sau đây để thực hiện phép nội suy tuyến tính trong Python:
import scipy.interpolate y_interp = scipy.interpolate.interp1d[x, y] #find y-value associated with x-value of 13 print[y_interp[13]]
Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế.
Ví dụ: Nội suy tuyến tính trong Python
Giả sử chúng ta có hai danh sách các giá trị sau đây trong Python:
x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]
Chúng ta có thể tạo ra một cốt truyện nhanh x so với y:
import matplotlib.pyplot as plt
#create plot of x vs. y
plt.plot[x, y, '-ob']
Bây giờ giả sử rằng chúng tôi muốn tìm giá trị y được liên kết với & nbsp; giá trị X mới của & nbsp; 13.13.
Chúng ta có thể sử dụng mã sau để làm như vậy:
import scipy.interpolate
y_interp = scipy.interpolate.interp1d[x, y]
#find y-value associated with x-value of 13
print[y_interp[13]]
33.5
Giá trị y ước tính hóa ra là 33,5.33.5.
Nếu chúng ta thêm điểm [13, 33,5] vào cốt truyện của chúng ta, nó dường như phù hợp với chức năng khá tốt:
import matplotlib.pyplot as plt
#create plot of x vs. y
plt.plot[x, y, '-ob']
#add estimated y-value to plot
plt.plot[13, 33.5, 'ro']
Chúng ta có thể sử dụng công thức chính xác này để thực hiện phép nội suy tuyến tính cho bất kỳ giá trị X mới nào.
Tài nguyên bổ sung
Các hướng dẫn sau đây giải thích cách khắc phục các lỗi phổ biến khác trong Python:
Cách sửa KeyError trong Pandas Cách sửa: ValueError: Không thể chuyển đổi Float Nan thành Integer Cách sửa: ValueError: Toán tử không thể được phát cùng với các hình dạng
How to Fix:
ValueError: cannot convert float NaN to integer
How to Fix: ValueError: operands could not be broadcast together with shapes