当前位置:网站首页>牛顿插值法
牛顿插值法
2022-07-06 04:16:00 【Python ml】
#include <vector>
#include <iostream>
using namespace std;
void print(vector<double> s)
{
for(double x:s)
{
cout<<x<<" ";
}
cout<<endl;
}
vector<double> mul(vector<double> a,vector<double> b) //多项式乘法
{
int n=a.size(), m=b.size();
vector<double> s(n+m-1,0);
for(int i=0;i<n;++i)
{
for(int j=0;j<m;++j)
{
s[i+j]+=a[i]*b[j];
}
}
return s;
}
vector<double> add(vector<double> a,vector<double> b)
{
int n=a.size(), m=b.size();
vector<double> s(max(n,m),0);
for(int i=0;i<n;++i){
s[i]+=a[i];
}
for(int i=0;i<m;++i){
s[i]+=b[i];
}
return s;
}
void print_chashang_table(vector<vector<double>> A)
{
int n=A.size(), m=A[0].size();
for(int i=0;i<n;++i)
{
for(int j=0;j<=i;++j)
{
printf("% 5.2f ",A[i][j]);
}
printf("\n");
}
}
vector<double> Newton(vector<vector<double>> Point){
int n=Point.size()-1;
if(n==-1){
cout<<"错误"<<endl;
}
vector<vector<double>> diffCoef_Table;
for(int i=0;i<n+1;++i){
//n+1项差商,初始化差商表
vector<double> V(i+1,0);
diffCoef_Table.emplace_back(V);
diffCoef_Table[i][0]=Point[i][1]; //差商表第一列为函数值
}
for(int k=1;k<=n;++k){
//递推求差商表
for(int i=k;i<=n;++i){
diffCoef_Table[i][k]=(diffCoef_Table[i][k-1]-diffCoef_Table[i-1][k-1])/(Point[i][0]-Point[i-k][0]);
}
}
print_chashang_table(diffCoef_Table);
vector<double> ans(n+1,0);
ans[0]=Point[0][1];
for(int k=1;k<=n;++k){
vector<double>s={
diffCoef_Table[k][k]};
for(int j=0;j<=k-1;++j){
s=mul(s,{
-Point[j][0],1});
}
ans=add(ans,s);
}
return ans;
}
int main(){
vector<vector<double>> P={
{
0,0},{
2,0},{
1,1},{
5,3}};
vector<double> s=Newton(P);
cout<<endl;
print(s);
system("pause");
return 0;
}
边栏推荐
- Lora gateway Ethernet transmission
- math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
- . Net interprocess communication
- 1291_Xshell日志中增加时间戳的功能
- 10個 Istio 流量管理 最常用的例子,你知道幾個?
- One question per day (Mathematics)
- 记一次excel XXE漏洞
- MySQL transaction isolation level
- 电脑钉钉怎么调整声音
- C. The Third Problem(找规律)
猜你喜欢
When debugging after pycharm remote server is connected, trying to add breakpoint to file that does not exist: /data appears_ sda/d:/segmentation
电脑钉钉怎么调整声音
Fundamentals of SQL database operation
【leetcode】1189. Maximum number of "balloons"
Fedora/REHL 安装 semanage
[Key shake elimination] development of key shake elimination module based on FPGA
About some basic DP -- those things about coins (the basic introduction of DP)
Stack and queue
Database, relational database and NoSQL non relational database
Thread sleep, thread sleep application scenarios
随机推荐
Thread sleep, thread sleep application scenarios
SharedPreferences 源码分析
Stable Huawei micro certification, stable Huawei cloud database service practice
math_极限&微分&导数&微商/对数函数的导函数推导(导数定义极限法)/指数函数求导公式推导(反函数求导法则/对数求导法)
Lora gateway Ethernet transmission
Global and Chinese markets for patent hole oval devices 2022-2028: Research Report on technology, participants, trends, market size and share
【leetcode】22. bracket-generating
2/12 didn't learn anything
Figure application details
In depth MySQL transactions, stored procedures and triggers
MLAPI系列 - 04 - 网络变量和网络序列化【网络同步】
Maxay paper latex template description
JVM garbage collector concept
Path of class file generated by idea compiling JSP page
P3500 [POI2010]TES-Intelligence Test(二分&离线)
Understanding of processes, threads, coroutines, synchronization, asynchrony, blocking, non blocking, concurrency, parallelism, and serialization
Security xxE vulnerability recurrence (XXe Lab)
Cross domain and jsonp details
食品行业仓储条码管理系统解决方案
2/11 matrix fast power +dp+ bisection