计算方法_牛顿插值_C++实现
2016-11-03 22:01
417 查看
#include<iostream>
#include<ctime>
using namespace std;
float * f(int n,float *x,float *y)
{
//该函数的返回值是一个长度为n+1的动态数组,存放各阶差商
float * f = new float[n+1];
f[0] = y[0];
//cout<<f[0]<<endl;
for (int i = 1; i <= n; i++) {
float t = 1;
float sum = 0;
for (int k = 0; k <= i; k++) {
for (int j = 0; j <= i; j++) {
if (j != k) {
t=t*(x[k] - x[j]);
}
}
sum = sum + y[k] / t;
t=1;
}
f[i] = sum;
}
return f;
}
int main(){
float x[5]={0,2,3,5,6},y[5]={0,8,27,125,216};
int n=4;
float * answer=f(4,x,y);
for (int i = 0; i <= n; i++) {
cout<<answer[i]<<endl;
}
//2阶差乘
cout<<y[0]/((x[0]-x[1])*(x[0]-x[2]))+y[1]/((x[1]-x[0])*(x[1]-x[2]))+y[2]/((x[2]-x[0])*(x[2]-x[1]))<<endl;
float t = 1;
float sum = 0;
for (int k = 0; k <= 2; k++) {
for (int j = 0; j <= 2; j++) {
if (j != k) {
t=t*(x[k] - x[j]);
}
}
sum = sum + (y[k] / t);
t=1;
}
cout<<sum;
return 0;
}
#include<ctime>
using namespace std;
float * f(int n,float *x,float *y)
{
//该函数的返回值是一个长度为n+1的动态数组,存放各阶差商
float * f = new float[n+1];
f[0] = y[0];
//cout<<f[0]<<endl;
for (int i = 1; i <= n; i++) {
float t = 1;
float sum = 0;
for (int k = 0; k <= i; k++) {
for (int j = 0; j <= i; j++) {
if (j != k) {
t=t*(x[k] - x[j]);
}
}
sum = sum + y[k] / t;
t=1;
}
f[i] = sum;
}
return f;
}
int main(){
float x[5]={0,2,3,5,6},y[5]={0,8,27,125,216};
int n=4;
float * answer=f(4,x,y);
for (int i = 0; i <= n; i++) {
cout<<answer[i]<<endl;
}
//2阶差乘
cout<<y[0]/((x[0]-x[1])*(x[0]-x[2]))+y[1]/((x[1]-x[0])*(x[1]-x[2]))+y[2]/((x[2]-x[0])*(x[2]-x[1]))<<endl;
float t = 1;
float sum = 0;
for (int k = 0; k <= 2; k++) {
for (int j = 0; j <= 2; j++) {
if (j != k) {
t=t*(x[k] - x[j]);
}
}
sum = sum + (y[k] / t);
t=1;
}
cout<<sum;
return 0;
}
相关文章推荐
- 计算方法_插值_C++实现
- 第四次程序设计作业 C++计算器计算及命令行的使用 前缀表达式方法实现
- 计算方法_拉格朗日插值_C++实现_方法4
- 计算方法_拉格朗日插值_C++实现_方法1
- 插值方法实现(拉格朗日插值和牛顿插值)
- 计算方法_拉格朗日插值_C++实现_方法2
- 牛顿插值 C++ 和 Matlab实现
- 计算机数值计算与方法-二牛顿插值
- 计算表达式的值c++逆波兰式实现方法
- 计算方法_拉格朗日插值_C++实现_方法3
- C++基于蔡基姆拉尔森计算公式实现由年月日确定周几的方法示例
- 【计算方法笔记】插值法:拉格郎日插值与牛顿插值
- C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法
- 车辆识别码VIN校验位计算方法及实现 VIN号检验、车架号检验 java、 C++
- 第四次程序设计作业 C++计算器计算及命令行的使用 前缀表达式方法实现
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 计算方法中方程的近似解法中二分法matlab实现
- C++Builder/Delphi中透明Panel及透明窗口的实现方法
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 计算方法单点截弦matlab实现