首页 > 编程语言 >牛顿插值法 不同阶图像对比及Python代码实现

牛顿插值法 不同阶图像对比及Python代码实现

时间:2023-09-18 17:26:34浏览次数:52  
标签:plt temp 插值法 sum 牛顿 Python np xs color

import matplotlib.pyplot as plt
import numpy as np

def newton_interpolation(X,Y,x):
    """
    计算x点的插值
    """
    sum=Y[0]
    temp=np.zeros((len(X),len(X)))
    #将第一行赋值
    for i in range(0,len(X)):
        temp[i,0]=Y[i]
    temp_sum=1.0
    for i in range(1,len(X)):
        #x的多项式
        temp_sum=temp_sum*(x-X[i-1])
        #计算均差
        for j in range(i,len(X)):
            temp[j,i]=(temp[j,i-1]-temp[j-1,i-1])/(X[j]-X[j-i])
        sum+=temp_sum*temp[i,i] 
    return sum

计算n等于4、8、12时y=cos(x)的插值图像:

plt.figure(figsize=(16,9))
plt.title("newton_interpolation")
color = ['green','red','purple']

for j,i in enumerate([5,9,13]):
    X = np.linspace(-4.5, 4.5, num= i)  
    Y= np.cos(X)
    xs=np.linspace(np.min(X),np.max(X),100,endpoint=True)
    
    ys=[]
    for x in xs:
        ys.append(newton_interpolation(X,Y,x))

    plt.plot(X,Y,'s',label=f"n={i-1}", color=color[j])#蓝点表示原来的值
    plt.plot(xs,ys,label='', color=color[j])#插值曲线

xs=np.linspace(-4,4,100,endpoint=True)
plt.plot(xs,np.cos(xs),'b',label='y=cos(x)')#原曲线
plt.xlabel('x')  
plt.ylabel('y')  
plt.legend(loc=1)#指定legend的位置右下角

y=cos(x)
计算n等于4、8、12时y=1 / (1 + e^(-x))的插值图像:

e = 2.718281828

plt.figure(figsize=(16,9))
plt.title("newton_interpolation")
color = ['green','red','purple']

for j,i in enumerate([5,9,13]):
    X = np.linspace(-10.1, 10.1, num= i)
    Y= np.array(1 / (1 + np.exp(-X)))
    xs=np.linspace(np.min(X),np.max(X),1000,endpoint=True)
    
    ys=[]
    for x in xs:
        ys.append(newton_interpolation(X,Y,x))

    plt.plot(X,Y,'s',label=f"n={i-1}", color=color[j])#蓝点表示原来的值
    plt.plot(xs,ys,label='', color=color[j])#插值曲线

xs=np.linspace(-10,10,100,endpoint=True)
plt.plot(xs,np.array(1 / (1 + np.exp(-xs))),'b',label='y=1 / (1 + e^(-x))')#原曲线
plt.xlabel('x')  
plt.ylabel('y')  
plt.legend(loc=2)#指定legend的位置右下角

请添加图片描述

标签:plt,temp,插值法,sum,牛顿,Python,np,xs,color
From: https://www.cnblogs.com/kemuling/p/17712484.html

相关文章

  • 龙格现象 图像对比及Python代码实现
    先定义牛顿插值函数,输入插值点和我拟合的点,毕竟是拟合光滑曲线,而画图都是点点相连,所以拟合点越多,曲线越光滑。importmatplotlib.pyplotaspltimportnumpyasnpdefnewton_interpolation(X,Y,x):"""计算x点的插值"""sum=Y[0]temp=np.zeros((len(X......
  • python复习
    一python简介#主流语言的区别c:c代码写完,编译(不同平台),跨平台运行,linux上源码安装软件,自行编译java:一处编码,处处运行,java是编译型还是解释型?编译型,编译过程---把java源代码编译成字节码文件.class---不能直接运行在操作系统上---》jvm(java虚拟机),jvm运行至少要300M内存jdk......
  • python 全角半角字符、字符串互转
    defis_chinese(uchar):"""判断一个unicode是否是汉字"""ifuchar>=u'\u4e00'anduchar<=u'\u9fa5':returnTrueelse:returnFalsedefis_number(uchar):"""......
  • python开发之个微群聊机器人的开发
    简要描述:退出群聊请求URL:http://域名地址/quitChatRoom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识chatRoomId是string群id返回数据:参数名类型说明codestring1000成功,1001失败msgstring反馈信......
  • Python Matplotlib 库使用基本指南
    简介Matplotlib是一个广泛使用的Python数据可视化库,它可以创建各种类型的图表、图形和可视化效果。无论是简单的折线图还是复杂的热力图,Matplotlib提供了丰富的功能来满足我们的数据可视化需求。本指南将详细介绍如何安装、基本绘图函数以及常见图表类型的绘制方法。安装Matpl......
  • python+playwright 学习-1.环境准备与快速开始
    前言说到web自动化,大家最熟悉的就是selenium了,selenium之后又出现了三个强势的框架Puppeteer、CyPress、TestCafe,但这3个都需要掌握JavaScript语言,所以只是少部分人在用。2020年微软开源一个UI自动化测试工具Playwright,支持Node.js、Python、C#和Java语言。为什......
  • 超细讲解Java调用python文件的几种方式
    1.首选Java调用Python文件的方式:JythonJython(JavaPython)是一种Python解释器,它使用Java语言编写,可以让Python代码在Java环境下运行。Jython具有明显的优势,可以很好地兼容Python代码中的所有库,因此对于Java和Python开发者来说都是理想的工具。在使用Jython时,需要在Java环境中下载和......
  • Python 基本语法
    代码行单行代码每行代码结尾不需要加标点a=123多行换行多行代码,直接换行a=123b=a+1复杂过长的计算、操作可用括号然后缩进换行income=(gross_wages     +taxable_interest     +(dividends-qualified_dividends)     -ira_deduction......
  • python多线程中锁的概念 threading.Lock
    https://blog.csdn.net/qq_21439971/article/details/79356248 python的锁可以独立提取出来12345678mutex  =  threading.Lock()#锁的使用#创建锁mutex  =  threading.Lock()#锁定mutex.acquire([timeout])#释放mutex.release()......
  • python测试用例数据驱动(读取写入excel)
    Python中处理excel数据的模块非常多,比如:xlxd(只读)、xlwd(只写)、openpyxl(可读写)Excel文件和下面的py文件代码一定要在同一个文件夹内,不然需要指定具体的Excel文件路径注意:excel文件为xlsx,不能是xls再转换成xlsx格式的文件,会报错fromopenpyxlimportload_workbookcl......