python分段线性插值_Python实现分段线性插值
本文实例为大家分享了Python实现分段线性插值的具体代码,供大家参考,具体内容如下
函数:
算法
这个算法不算难。甚至可以说是非常简陋。但是在代码实现上却比之前的稍微麻烦点。主要体现在分段上。
图像效果
代码
import numpy as np
from sympy import *
import matplotlib.pyplot as plt
def 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) * ey
return I
def calnf(x):
nf = []
for i in range(len(x) - 1):
nf.append(cal(x[i], x[i + 1]))
return nf
def calf(f, x):
y = []
for i in x:
y.append(f.subs(n, i))
return y
def nfSub(x, nf):
tempx = np.array(range(11)) - 5
dx = []
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'] = False
x = 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 - y
temp = abs(temp)
print(temp.mean())
if __name__ == '__main__':
x = np.array(range(11)) - 5
y = f(x)
n, m = symbols('n m')
init_printing(use_unicode=True)
nf = calnf(x)
draw(nf)
lossCal(nf)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。
python分段线性插值_Python实现分段线性插值相关推荐
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- matlab用分段线性插值例题,matlab分段线性插值
(j))^3; end end 7 结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为 1.4664 说明实验结果准确无误,通过实验可以得出,在...... 中平 ...
- 分段函数用python表达_python文章分段
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...
- Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习
Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...
- 视频教程-快速入门Python基础教程_Python基础知识大全-Python
快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...
- Python学习教程(Python学习视频_Python学习路线):Day04循环结构
Python学习教程(Python学习视频_Python学习路线):循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入 ...
- Redis分布式锁 分段加锁思想实现 分段锁
Redis分布式锁 分段加锁思想实现 分段锁 一.前言 这里我简单说一下,代码可能没那么完美.希望各位大佬可以多多指点!!!要是有测试能力的兄弟可以帮我测一下,我这个分段加锁我是全部都在Redis ...
- 视频教程-快速入门Python基础教程_Python基础进阶视频-Python
快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...
- Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python
Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...
最新文章
- return true Java_[Java教程]js中return,return true,return false的用法及区别
- 从创业到成功,SaaS巨头Salesforce靠的是这七大秘诀
- suse软件管理程序zypper
- 【OpenCV笔记】图像预处理
- 2019 ICPC World Finals Problem J. Miniature Golf
- 烽火MAS短信服务器配置相关
- 删除某文件以外的文件
- three20 如何将three20中的demo添加到自己的应用程序中。
- 18.10 汇编语句
- 龙格库塔算法原理详解
- 如何理解前后端分离HTML5,Web前后端分离开发思路
- MATLAB数据降维工具箱drtoolbox
- (四)拒绝服务–TearDrop 攻击
- Java项目部署到云服务器的思路
- mac系统上Unity classes.jar 目录
- java 本月剩余天数_java基础 计算今天距本月最后一天还剩多少天
- 情绪识别数据集汇总心电相关and申请方法详细描述 呕心沥血之作 全网唯一 AMIGOS ASCERTAIN CLAS DECAF DREAMER MANHOB-HCI MPED SWELL
- 利用python程序、虚拟串口软件、串口通信助手,实现串口通信(两串口互相收发文字)
- 飞机大战之四:飞机跟随触屏手指移动
- Arch Linux pacman 与其他发行版操作比较
热门文章
- Ubuntu alias在/etc/profile重启无效解决
- Android Thread/Runnable/Handler用法
- Android连接管理的评分机制(WIFI,Ethernet,BT,移动数据
- Android Sensor传感器系统架构初探
- tensorflow之dropout
- 计算机基础(五):堆和栈区别
- 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题
- Linux查看进程是否占用,Linux 下查看哪个进程占用swap空间
- 订阅号获取openid_小程序订阅消息
- 用anaconda配置深度学习的环境,从配置环境到下载各种包,绝对学会,还是没学会留下评论,我看到会回答