计算方法——插值法程序实现(一)

2024-09-02 06:04

本文主要是介绍计算方法——插值法程序实现(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

例题

给出y=e^x的函数关系表,分别利用线性插值及二次插值计算e^{0.27}的近似值。

x0.10.20.30.40.5
e^x1.1051711.2214031.3498591.4918251.648721

参考代码一:Python代码实现(自编码)

import math
"""
:parameter用于计算插值多项式的系数
"""
def Parameters(data_x,data_y,size):parameters=[]i = 0while i<size:j = 0temp = 1while j<size:if i!=j:temp*=data_x[i]-data_x[j];j += 1parameters.append(data_y[i]/temp);i += 1return parameters
"""
:Calculate用于计算拉格朗日插值公式计算后的值
"""
def Calculate(data_x,parameters,x):return_value = 0;i = 0while i < len(parameters):temp = 1j = 0while j<len(parameters):if i!=j:temp*=x-data_x[j];j+=1return_value+=temp*parameters[i]i+=1return return_valuex1 = [0.2,0.3];
y1 = [1.221403,1.349859];
p1 = Parameters(x1,y1,len(x1));
target_point = 0.27;
real_value = math.exp(target_point);
fit_value = Calculate(x1,p1,target_point)
remainder = real_value-fit_value
print("===============线性拉格朗日插值==================");
print(f"点{target_point}处的真实值为{real_value}")
print(f"点{target_point}处的拟合值为{fit_value}")
print(f'拉格朗日插值余项为{remainder}');
print("===============二次拉格朗日插值==================");
x2 = [0.2,0.3,0.4];
y2 = [1.221403,1.349859,1.491825];
p2 = Parameters(x2,y2,len(x2))
fit_value_2 = Calculate(x2,p2,target_point)
remainder2 = real_value-fit_value_2
print(f"点{target_point}处的拟合值为{fit_value_2}");
print(f'拉格朗日插值余项为{remainder2}');

Python编码计算结果

参考代码二:MATLAB代码实现(自编码)

%可运行部分代码
clc,clear
format long
x1=[0.2,0.3];
y1=[1.221403,1.349859];
p1=Parameters(x1,y1,length(x1));
point=0.27;
real = exp(point);
disp('点0.27处的真实值为');
disp(real);
fitted1 = Calculate(x1,p1,point);
Remainder1 = real-fitted1;
disp('点0.27处的线性拉格朗日插值结果为');
disp(fitted1);
disp('点0.27处的线性拉格朗日插值余项为');
disp(Remainder1);
x2 = [0.2,0.3,0.4];
y2 = [1.221403,1.349859,1.491825];
p2 = Parameters(x2,y2,length(x2));
fitted2 = Calculate(x2,p2,point);
Remainder2 = fitted2-real;
disp('点0.27处的二次拉格朗日插值结果为');
disp(fitted2);
disp('点0.27处的二次拉格朗日插值余项为');
disp(Remainder2);
format short

Parameters函数

Parameter用于计算插值多项式的系数

function parameters = Parameters(data_x,data_y,size)
parameters=[];
i=1;
while i<=sizej=1;temp=1;while j<=sizeif i ~= jtemp=(temp*(data_x(i)-data_x(j)));end% disp(temp);j=j+1;endparameters=[parameters,data_y(i)/temp];% disp(parameters);i=i+1;
end

Calculate函数

Calculate用于计算拉格朗日插值公式计算后的值

function return_value = Calculate(data_x,parametres,x)
return_value=0;
i=1;
while i<=length(parametres)temp=1;j=1;while j<=length(parametres)if i~=jtemp = temp*(x-data_x(j));endj=j+1;endreturn_value = return_value+temp*parametres(i);i = i+1;
end

MATLAB编码计算结果

参考书目

[1] 李新栋,许文文,张绪浩,任永强. 基于Python的计算方法[M]. 北京:电子工业出版社,2023.

这篇关于计算方法——插值法程序实现(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129192

相关文章

IBS和IBD的区别和计算方法介绍

大家好,我是邓飞。 今天介绍一下IBS和IBD的区别: IBS(肠易激综合症)和IBD(炎症性肠病)是两种不同的消化系统疾病,主要区别如下: IBS(Irritable Bowel Syndrome):是一种功能性肠道疾病,主要表现为腹痛、腹胀、腹泻或便秘,症状通常与饮食、压力和心理因素相关,没有明显的器质性病变。 IBD(Inflammatory Bowel Disease):是一组

组合c(m,n)的计算方法

问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。       共四种方案。ps:注意使用限制。 方案1: 暴力求解,C(n,m)=n*(n-1)*...*(n-m+1)/m!,n<=15 ; int Combination(int n, int m) { const int M = 10007; int

电负性的计算方法

保罗电负性标度是广泛使用的方法之一,由Linus Pauling于1932年提出。这个标度基于实验数据,特别是化学键的键能数据。虽然电负性本身不是直接计算得到的,但保罗通过实验数据提出了一个经验公式: [\Delta E = \frac{1}{2} (E_{AB} - (E_{AA} + E_{BB}))] 其中: ( \Delta E ) 是化学键的键能差, ( E_{AB} ) 是AB

图像相似度计算方法

图像相似度计算主要用于对于两幅图像之间内容的相似程度进行打分,根据分数的高低来判断图像内容的相近程度。      可以用于计算机视觉中的检测跟踪中目标位置的获取,根据已有模板在图像中找到一个与之最接近的区域。然后一直跟着。已有的一些算法比如BlobTracking,Meanshift,Camshift,粒子滤波等等也都是需要这方面的理论去支撑。     还有一方面就是基于图像内容的图像检索,

音频帧率计算方法(为防止以后忘了)

采样率   sampling = 44100  格式(编码字节数、采样一位所占的字节数) format = s16(格式)=16(bit) 声道数 channels = 2 一次采样(一秒中所占的位数)TotalBit = sampling * channels * format = 1411200 一次采样(一秒中所占的字节数)TotalByte = TotalBit/8 = 17640

uniapp小程序实现横屏手写签名

<template><view class="signBox column-me"><!-- 这个是自定义的title-可根据自己封装的title的作为调整 --><status-bar title="电子签名" :bgColor="null"></status-bar><view class="topHint">请绘制清晰可辨的签名并保存</view><canvas class="canva

常用的相似度计算方法----欧式距离、曼哈顿距离、马氏距离、余弦、汉明距离、切比雪夫距离、闵可夫斯基距离、马氏距离

在深度学习以及图像搜索中,经常要对特征值进行比对,得到特征的相似度,常见的特征值比对方法有汉明距离、余弦距离、欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、马氏距离等,下面对各种比对方法分别进行介绍。 目录 1汉明距离 2余弦相似度 3欧式距离 4曼哈顿距离 5切比雪夫距离 6闵可夫斯基距离 7马氏距离 1汉明距离 汉明距离/Hamming Distance也能用来计算两

BMS中SOC的计算方法

在电池管理系统(BMS)中,状态的充电(SOC,State of Charge)的计算方法主要有以下几种: 1. 库仑计数法(Coulomb Counting) 原理:通过测量电流并积分来计算SOC。公式: \text{SOC} = \text{SOC}_0 + \frac{1}{C} \int I(t) dtSOC=SOC0​+C1​∫I(t)dt 其中,CC是电池的额定容量,I(t)I(t

微信小程序实现tab和swiper切换结合效果viewpage+tab效果

swiper.js 代码 //index.js//获取应用实例var app = getApp();var mtabW;Page({data: {tabs: ["A", "B", "C", "D", "E"],//tob标题pageData: ["pageA", "pageB", "pageC", "pageD", "pageE"],//page数据activeIndex: 0

超简单Java邮件发送-为你的小程序实现邮箱验证码登录

本项目基于Apache Commons Email for Jakarta开发。 超简单实现邮箱发送,并以此扩展出邮箱验证码功能(请读者扩展实现)。 构建工具:Maven 演示邮箱:outlook 准备         请确保你的邮箱开启了SMTP服务,并获取相关参数,类似下图: 开始 1.依赖导入 官网:官网依赖导入方式(点击前往)https://commons.ap