資料分析(Python)插值 拉格朗日插值法

2021-10-07 09:38:29 字數 3252 閱讀 3814

插值思想

對於任意n個點,都可以用一條曲線連線起來,這條曲線的表示式為:

對於兩個點(x1,y1),(x2,y2),這條曲線為:

根據插值點數不同觀察插值函式的規律

**實現

import matplotlib.pyplot as plt

import numpy as np

import math

import random

y_point =

text_list =

x_point = random.sample(

range(0

,12),

10)#生成不重複的隨機數

for num in

range(10

):1,

12))#生成1-20隨機整數

text=

'('+

str(x_point[num])+

','+

str(y_point[num])+

')'#合併字串

plt.annotate(text_list[num]

,xy=

(x_point[num]

,y_point[num]

),xytext=

(x_point[num]

+0.5

,y_point[num]

+0.5))

#annotate第乙個引數是文字內容 第二個引數是要標記的位置 第三個引數是文字標記位置

x = np.arange(

min(x_point)

,max

(x_point)

+0.01

,0.01

)sum=0

for i in

range

(len

(x_point)):

numerator =

1 denominator =

1for j in

range

(len

(x_point)):

if(j != i)

: numerator *= x - x_point[j]

#每一項中的分子

denominator *= x_point[i]

- x_point[j]

#每一項中的分母

nape = y_point[i]

* numerator / denominator #每一項

sum+= nape

plt.scatter(x_point,y_point, marker=

".")

plt.plot(x,

sum)

plt.show(

)

插值展示

對(1,1),(2.25,1.5),(4,2)三個點進行插值:

修改**x_point,y_point列表值作為二維空間資料元素座標即可

import matplotlib.pyplot as plt

import numpy as np

import math

import random

x_point =[1

,2.25,4

]y_point =[1

,1.5,2

]text_list =

for num in

range(3

):text=

'('+

str(x_point[num])+

','+

str(y_point[num])+

')'#合併字串

plt.annotate(text_list[num]

,xy=

(x_point[num]

,y_point[num]

),xytext=

(x_point[num]

+0.1

,y_point[num]

+0.1))

#annotate第乙個引數是文字內容 第二個引數是要標記的位置 第三個引數是文字標記位置

x = np.arange(

min(x_point)

,max

(x_point)

+0.01

,0.01

)sum=0

for i in

range

(len

(x_point)):

numerator =

1 denominator =

1for j in

range

(len

(x_point)):

if(j != i)

: numerator *= x - x_point[j]

#每一項中的分子

denominator *= x_point[i]

- x_point[j]

#每一項中的分母

nape = y_point[i]

* numerator / denominator #每一項

sum+= nape

plt.scatter(x_point,y_point, marker=

".")

plt.plot(x,

sum)

plt.show(

)

**說明

待插值數值點

x_point,y_point

散點文字標記,迴圈次數為散點數量,plt.annotate引數->xytext引數可適當修改

插值範圍,可做修改

拉格朗日插值演算法分析

這幾天一直研究拉格朗日多項式,今天將自己對拉格朗日多項式的理解寫在這裡,方便大家交流。在數值分析中,拉格朗日常用於多項式插值。假定提供一組資料點 xi,yi 拉格朗日插值多項式就是由這些 資料的線性運算得到的。其中基本的多項式有以下公式計算得到 注意1.第一提供的xi應該是沒有相同的,否則不能應用此...

拉格朗日插值

拉格朗日插值基函式 li x x x 0 x xi 1 x xi 1 x x n x i x0 xi xi 1 xi xi 1 xi xn 拉格朗日差值函式 ln x i 0 nyil i x 其中,x為缺失值對應的下表序號,ln x 為缺失值的插值結果,xi 為缺失值yi 的下表序號。對全部缺失值...

拉格朗日插值

function s larg1 x,y,xi m length x 求出插值節點向量長度 n length y if m n error 向量x與y的長度必須一致 這裡肯定一致,只是為了消除直接選取x,y資料的時候出錯而設定的 end s 0 for i 1 n z ones 1,length x...