分段线性插值Python实现(同时估计误差)
函数
y = \frac{1}{1+x^2}
算法
这个算法不算难。甚至可以说是非常简陋。但是在代码实现上却比之前的稍微麻烦点。主要体现在分段上。
图像效果
代码
import numpy as np
from sympy import *
import matplotlib.pyplot as pltdef f(x):return 1 / (1 + x ** 2)def cal(begin, end):by = f(begin)ey = f(end)I = (n - end) / (begin - end) * by + (n - begin) / (end - begin) * eyreturn Idef calnf(x):nf = []for i in range(len(x) - 1):nf.append(cal(x[i], x[i + 1]))return nfdef calf(f, x):y = []for i in x:y.append(f.subs(n, i))return ydef nfSub(x, nf):tempx = np.array(range(11)) - 5dx = []for i in range(10):labelx = []for j in range(len(x)):if x[j] >= tempx[i] and x[j] < tempx[i + 1]:labelx.append(x[j])elif i == 9 and x[j] >= tempx[i] and x[j] <= tempx[i + 1]:labelx.append(x[j])dx = dx + calf(nf[i], labelx)return np.array(dx)def draw(nf):plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsex = np.linspace(-5, 5, 101)y = f(x)Ly = nfSub(x, nf)plt.plot(x, y, label='原函数')plt.plot(x, Ly, label='分段线性插值函数')plt.xlabel('x')plt.ylabel('y')plt.legend()plt.savefig('1.png')plt.show()def lossCal(nf):x = np.linspace(-5, 5, 101)y = f(x)Ly = nfSub(x, nf)Ly = np.array(Ly)temp = Ly - ytemp = abs(temp)print(temp.mean())if __name__ == '__main__':x = np.array(range(11)) - 5y = f(x)n, m = symbols('n m')init_printing(use_unicode=True)nf = calnf(x)draw(nf)lossCal(nf)
分段线性插值Python实现(同时估计误差)相关推荐
- 龙格现象及分段线性插值
龙格现象及分段线性插值 python画图代码 import numpy as np import matplotlib.pyplot as pltdef Lagrange(arr_x, arr_y, ...
- python分段线性插值_Python实现分段线性插值
本文实例为大家分享了Python实现分段线性插值的具体代码,供大家参考,具体内容如下 函数: 算法 这个算法不算难.甚至可以说是非常简陋.但是在代码实现上却比之前的稍微麻烦点.主要体现在分段上. 图像 ...
- python分段线性插值_[Python] 分段线性插值
利用线性函数做插值 每一段的线性函数: #Program 0.6 Linear Interploation import numpy as np import matplotlib.pyplot as ...
- ANSYS FLUENT 超临界流体物性分段线性插值数据批量导入
使用fluent自带数据库进行超临界流体仿真时,时不时会出现计算错误,考虑是数据库不稳定引起,而使用自定义的分段线性插值物性则不会出现上述情况. 超临界流体在拟临界点附近物性变化剧烈,需要使用较多的数 ...
- Liner(分段线性插值)
第一次写微博,记录自己的学习历程~~~~欢迎大家一起探讨~~~~ 分段线性插值故名思议就是说把给定样本点的区间分成多个不同区间,记为[xi,xi+1],在每个区间上的一次线性方程为: 关于其证明: 分 ...
- 拉格朗日插值、分段线性插值、三次样条插值
本篇主要介绍在三种插值方法:拉格朗日插值.分段线性插值.三次样条插值,以及这三种方法在matlab中如何实现. 1.拉格朗日插值: 1.1基本原理:先构造一组基函数: 是次 ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值
插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...
- 数值分析之 拉格朗日插值、牛顿插值、分段线性插值实现
1.拉格朗日插值法 考虑全局信息的比较经典的插值方法,编程简单,计算量大. #coding=utf-8 from matplotlib import pyplot as pltdef Lg(data, ...
最新文章
- 学习Python语言 基础语法:变量的基本使用
- 人脸识别可以分辨同性恋?论科技研发和伦理道德之间的矛盾
- xslt 标签取集合第一条数据_1+x证书Web前端开发中级理论考试(试卷1)
- Honeycomb——BFS
- python机器学习常用包
- JavaScript数组的某些操作(一)
- testmeshpro合批_UGUI合批原理笔记
- 道一声java技术_java提高篇(二)-理解java的三大特性之继承 - Java 技术驿站-Java 技术驿站...
- 7628刷breed_路由器刷breed_Web控制台助手v5.9版本.7z
- 同态滤波与Retinex
- Aligning Domain-Specific Distribution and Classifier for Cross-Domain Classification from Multiple
- 各种数据库中的dual表
- 安装Activemq5.13.2异常
- 红孩儿编输器的模块设计14
- 从小码农走到区块链DeFi核心,AC的加密旅程落幕
- 沐神点赞!同济子豪兄精读AI经典论文,包括图像分类、目标检测、生成对抗网络、轻量化卷积神经网络等领域...
- 小程序开发框架_mpvue(六)卡通照片的实现思路
- Can't update table 'psxt_user' in stored function/trigger because it is already used by statement wh
- 分类算法常用的评价指标
- 在gmail中使用邮件模板功能