本文实例为大家分享了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实现分段线性插值相关推荐

  1. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  2. matlab用分段线性插值例题,matlab分段线性插值

    (j))^3; end end 7 结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为 1.4664 说明实验结果准确无误,通过实验可以得出,在...... 中平 ...

  3. 分段函数用python表达_python文章分段

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

  4. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  5. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  6. Python学习教程(Python学习视频_Python学习路线):Day04循环结构

    Python学习教程(Python学习视频_Python学习路线):循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入 ...

  7. Redis分布式锁 分段加锁思想实现 分段锁

    Redis分布式锁 分段加锁思想实现 分段锁 一.前言 ​ 这里我简单说一下,代码可能没那么完美.希望各位大佬可以多多指点!!!要是有测试能力的兄弟可以帮我测一下,我这个分段加锁我是全部都在Redis ...

  8. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  9. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

最新文章

  1. return true Java_[Java教程]js中return,return true,return false的用法及区别
  2. 从创业到成功,SaaS巨头Salesforce靠的是这七大秘诀
  3. suse软件管理程序zypper
  4. 【OpenCV笔记】图像预处理
  5. 2019 ICPC World Finals Problem J. Miniature Golf
  6. 烽火MAS短信服务器配置相关
  7. 删除某文件以外的文件
  8. three20 如何将three20中的demo添加到自己的应用程序中。
  9. 18.10 汇编语句
  10. 龙格库塔算法原理详解
  11. 如何理解前后端分离HTML5,Web前后端分离开发思路
  12. MATLAB数据降维工具箱drtoolbox
  13. (四)拒绝服务–TearDrop 攻击
  14. Java项目部署到云服务器的思路
  15. mac系统上Unity classes.jar 目录
  16. java 本月剩余天数_java基础 计算今天距本月最后一天还剩多少天
  17. 情绪识别数据集汇总心电相关and申请方法详细描述 呕心沥血之作 全网唯一 AMIGOS ASCERTAIN CLAS DECAF DREAMER MANHOB-HCI MPED SWELL
  18. 利用python程序、虚拟串口软件、串口通信助手,实现串口通信(两串口互相收发文字)
  19. 飞机大战之四:飞机跟随触屏手指移动
  20. Arch Linux pacman 与其他发行版操作比较

热门文章

  1. Ubuntu alias在/etc/profile重启无效解决
  2. Android Thread/Runnable/Handler用法
  3. Android连接管理的评分机制(WIFI,Ethernet,BT,移动数据
  4. Android Sensor传感器系统架构初探
  5. tensorflow之dropout
  6. 计算机基础(五):堆和栈区别
  7. 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题
  8. Linux查看进程是否占用,Linux 下查看哪个进程占用swap空间
  9. 订阅号获取openid_小程序订阅消息
  10. 用anaconda配置深度学习的环境,从配置环境到下载各种包,绝对学会,还是没学会留下评论,我看到会回答