簡體   English   中英

如何在 python 中實現線性插值?

[英]How to implement linear interpolation in python?

我想實現一個 function interpolate(x, y, X_new) 計算未知 function f 在新點 x_new 的線性插值。 樣本以兩個序列 x 和 y 的形式給出。 兩個序列具有相同的長度,並且它們的元素是數字。 x序列包含function已經被采樣的點,y序列包含對應點的function值。 (不使用 import 語句)。

據我了解你的問題,你想寫一些 function y = interpolate(x_values, y_values, x) ,它會給你一些xy值? 基本思想遵循以下步驟:

  1. 查找x_values中定義包含x的區間的值的索引。 例如,對於x=3與您的示例列表,包含區間將是[x1,x2]=[2.5,3.4] ,索引將是i1=1i2=2
  2. 通過(y_values[i2]-y_values[i1])/(x_values[i2]-x_values[i1])計算此區間的斜率(即dy/dx )。
  3. x處的值現在是x1處的值加上斜率乘以與x1的距離。

您還需要確定如果xx_values的區間之外會發生什么,或者這是一個錯誤,或者您可以“向后”插值,假設斜率與第一個/最后一個區間相同。

這有幫助嗎,還是您需要更具體的建議?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM