python分段线性插值_Python实现分段线性插值
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
今天文章到此就结束了,感谢您的阅读,Java架构师必看祝您升职加薪,年年好运。
相关文章
- Python获取时间戳_python爬虫时间戳
- pycharm自带python环境吗_Python IDE环境之 新版Pycharm安装详细教程[通俗易懂]
- pycharm配置python运行环境_C中调用Python
- 关于python中format占位符中的 {!} 参数[通俗易懂]
- 【说站】python如何判断集合的超集
- 【说站】python链表的乘法问题
- 【说站】python numpy.matmul实现矩阵相乘
- 实现交互式shell的几种方式:python pty 方式、升级nc、socat、script获取pty
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- python上的表白代码_用Python实现表白代码
- 随机数生成 python_python生成多个随机数
- python制作自动交易程序_Python如何实现自动化交易
- python定义函数求和_Python定义函数实现累计求和操作
- 盘点一个使用Python实现图片文件名去重的实战案例
- Python实现智能互动拍照系统(毕设源码)
- Python 实现SynFlood洪水攻击
- python实现微信不断给好友发消息
- 如何实现 Python 的惰性导入-lazy import
- 开发Linux下Python编程:实现自己的开发梦想(linux下python)
- Python爬虫入门教程:超级简单的Python爬虫教程
- Python实现快速连接Redis数据库(python连接redis)
- 从 Python 连接到 MySQL:实现更多强大的数据库应用(python和mysql)