IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 拉格朗日差值法python实现 -> 正文阅读

[人工智能]拉格朗日差值法python实现

L a g r a n g e 插 值 法 : Lagrange插值法: Lagrange 给 定 一 组 点 ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x n , y n ) 给定一组点 (x_{1},y_{1}),(x_{2},y_{2})...(x_{n},y_{n}) (x1?,y1?),(x2?,y2?)...(xn?,yn?) n 次 拉 格 朗 日 插 值 基 函 数 ?? P i ( x ) = ∏ j = 1 , j ≠ i n x ? x j x i ? x j n次拉格朗日插值基函数 \ \ P_{i}(x)=\prod_{j=1,j\neq i}^{n}\frac{x-x_{j}}{x_{i}-x{j}} n??Pi?(x)=j=1,j?=in?xi??xjx?xj?? 拉 格 朗 日 插 值 多 项 式 ?? L n ( x ) = ∑ i = 1 n y i P i 拉格朗日插值多项式\ \ L_{n}(x)=\sum_{i=1}^{n}y_{i}P_{i} ??Ln?(x)=i=1n?yi?Pi?
举个例子:假如我们只有三个点, 那么
L 2 ( x ) = ( x ? x 1 ) ( x ? x 2 ) ( x 0 ? x 1 ) ( x 0 ? x 2 ) y 0 + ( x ? x 0 ) ( x ? x 2 ) ( x 1 ? x 0 ) ( x 1 ? x 2 ) y 1 + ( x ? x 0 ) ( x ? x 1 ) ( x 2 ? x 0 ) ( x 2 ? x 1 ) y 2 L_{2}(x)=\frac{(x-x_{1})(x-x_{2})}{(x_{0}-x_{1})(x_{0}-x_{2})}y_{0}+\frac{(x-x_{0})(x-x_{2})}{(x_{1}-x_{0})(x_{1}-x_{2})}y_{1}+\frac{(x-x_{0})(x-x_{1})}{(x_{2}-x_{0})(x_{2}-x_{1})}y_{2} L2?(x)=(x0??x1?)(x0??x2?)(x?x1?)(x?x2?)?y0?+(x1??x0?)(x1??x2?)(x?x0?)(x?x2?)?y1?+(x2??x0?)(x2??x1?)(x?x0?)(x?x1?)?y2?
python 实现
方法一:

from scipy.interpolate import lagrange
x = [1,3,5]
y = [2,10,1]
print(lagrange(x, y))  #拟合曲线
print(lagrange(x, y)(10))  #估值

结果:

        2
-2.125 x + 12.5 x - 8.375
-95.875

方法二:

x = [1, 3, 5]
y = [2, 10, 1]
def lagrange_Interpolation(x1):
    P = []
    L_n = 0
    for i in range(len(x)):
        numerator=1  #分子初始化
        denominator=1  #分母初始化
        for j in range(len(x)):
            if j!=i:
                numerator*=(x1-x[j])
                denominator*=(x[i]-x[j])

        P.append(numerator/denominator)

    for i in range(len(y)):
        L_n+=y[i]*P[i]
    return round(L_n,3)  #保留3位小数
print(lagrange_Interpolation(10))

结果:

-95.875

看拟合曲线图像:

import numpy
import matplotlib
from matplotlib import pyplot
x2=numpy.linspace(-10,10,20,endpoint=False) #从-10到10 20个点去拟合曲线
print(x2)
y2=[]
for i in range(len(x2)):
    y2.append(lagrange_Interpolation(x2[i]))
print(y2)

pyplot.plot(x2,y2)
pyplot.scatter(x,y, marker=".")
pyplot.show()

结果:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:47:25  更:2022-03-13 21:51:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 16:19:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码