博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Python] Hermite 插值
阅读量:6945 次
发布时间:2019-06-27

本文共 1075 字,大约阅读时间需要 3 分钟。

        

 

 

# -*- coding: utf-8 -*-#Program 0.5 Hermite Interpolationimport matplotlib.pyplot as pltimport numpy as np#计算基函数的导数值def dl(i, xi):	result = 0.0	for j in range(0,len(xi)):		if j!=i:			result += 1/(xi[i]-xi[j])	result *= 2	return result#计算基函数值def l(i, xi, x):	deno = 1.0	nu = 1.0	for j in range(0, len(xi)):		if j!= i:			deno *= (xi[i]-xi[j])			nu *= (x-xi[j])	return nu/deno#Hermite插值函数def get_Hermite(xi, yi, dyi):	def he(x):		result = 0.0		for i in range(0, len(xi)):			result += (yi[i]+(x-xi[i])*(dyi[i]-2*yi[i]*dl(i, xi))) * ((l(i,xi,x))**2)		return result	return heimport mathsr_x = [(i * math.pi) + (math.pi / 2) for i in range(-3, 3)]sr_fx = [math.sin(i) for i in sr_x]deriv = [0 for i in sr_x]                           # 导数都为 0Hx = get_Hermite(sr_x, sr_fx, deriv)  # 获得插值函数tmp_x = [i * 0.1 * math.pi for i in range(-20, 20)] # 测试用例tmp_y = [Hx(i) for i in tmp_x]                      # 根据插值函数获得测试用例的纵坐标#画图plt.plot(sr_x, sr_fx, 'ro')plt.plot(tmp_x, tmp_y, 'b-')plt.title('Hermite Interpolation')plt.show()

  

转载于:https://www.cnblogs.com/KennyRom/p/6626058.html

你可能感兴趣的文章
mybatis plus条件构造器
查看>>
quick sort(重复数版)
查看>>
乌班图 root权限获取
查看>>
Java内部类
查看>>
趣说Java:我是一个线程
查看>>
HDU 1498 50 years, 50 colors
查看>>
杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
查看>>
PHP添加mongodb驱动的问题
查看>>
JS将秒转换为 天-时-分-秒
查看>>
CRUD
查看>>
Unity3D性能优化--- 收集整理的一堆
查看>>
数据库基础
查看>>
基础概要
查看>>
网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
查看>>
FOR ALL ENTRIES IN 与 INNER JOIN 写在一个SQL上影响效率
查看>>
【转载】aspx,ascx和ashx使用小结
查看>>
Java缓存类的实际应用场景
查看>>
转:Linux tcpdump命令详解
查看>>
JAVA集合类汇总
查看>>
我的Android进阶之旅------> Android在TextView中显示图片方法
查看>>