资源简介
该程序由c++编写,主要用于实现基于函数y=e^(-2x)在区间[0,6]的插值函数,开发工具为VS2015,请用此IDE或者更高版本的IDE打开工程文件~~~~~
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include “Lagrange.h“
#include “Liner.h“
#include “YangTiao.h“
#include “WriteFile.h“
using namespace std;
#define E 2.71828182845904523536
double * calculateVlaue(double * x int n);
int main() {
FILE *fp;//写入文件
fp = fopen(“D:\\result.txt“ “w“);
fclose(fp);
ofstream outfile(“D:\\result.txt“ ios::in | ios::out | ios::binary);
if (!outfile.is_open())
{
cout << “ the file open failed“ << endl;
exit(1);
}
int num = 0; //输入的插值点的数
double x[10000]; //用于存储要求计算的x值
double standX[10000]; //用于存储插值点x
double standY[10000]; //用于存储插值点y
double *sY;
double targetY[1000];
double accurateY[1000];
cout << “please input the num to interpolate: “;
cin >> num; //输入插值点数
outfile << “插值点数为: “ << num << “\r\n“;
double step = 6 / double(num); //步长
standX[0] = 0;
int k = 0;
//cout << “the step is: “ << step << endl;
outfile << “x的坐标值: \r\n“;
cout << “x的坐标值: \r\n“;
for (int i = 1; i <= num; i++) {
standX[i] = standX[i-1] + step;
x[k] = 6 * (i- 0.5) / num;
cout << standX[k] << “ “;
outfile << standX[k] << “ “;
k++;
}
outfile << “\r\n“;
cout << endl;
outfile << “y的坐标值: \r\n“;
cout << “y的坐标值: \r\n“;
sY = calculateVlaue(standX k+1);
for (int i = 0; i <= num; i++) {
standY[i] = *(sY + i);
outfile << standY[i] << “ “;
}
outfile << “\r\n“;
outfile << “目标x: \r\n“;
cout << “目标x: \r\n“;
for (int i = 1; i <= num; i++) {
x[k] = 6 * (i - 0.5) / num;
cout << x[k] << “ “;
outfile << x[k] << “ “;
k++;
}
cout << endl;
outfile << “\r\n“;
outfile << “标准结果: \r\n“;
cout << “标准结果: \r\n“;
sY = calculateVlaue(x k);//计算要求的x值对应的标准y值
for (int i = 0; i < num; i++) {
accurateY[i] = *(sY + i);
outfile << accurateY[i] << “ “;
}
outfile << “\r\n“;
cout << endl;
double absoluteError = 0;
//n阶拉格朗日插值
outfile << “拉格朗日插值: \r\n“;
sY = Lagrange(num standX standY x);
for (int i = 0; i < num; i++) {
targetY[i] = *(sY + i);
if (abs(targetY[i] - accurateY[i]) > absoluteError) {
absoluteError = abs(targetY[i] - accurateY[i]);
}
outfile << targetY[i] << “ “;
}
outfile << “\r\n“;
outfile << “最大绝对误差: “ << absoluteError << “\r\n“;
cout << endl << “最大绝对误差: “ << absoluteError << endl;
absoluteError = 0;
//分段线性插值
outfile << “分段线性插值: \r\n“;
sY = Liner(num standX standY x);
for (int i = 0; i < num; i++) {
targetY[i] = *(sY + i);
if (abs(targetY[i] - accurateY[i]) > absoluteError) {
absoluteError = abs(targetY[i] - accurateY[i]);
}
outfile << targetY[i] << “ “;
}
outfile << “\r\n“;
outfile << “最大绝对误差: “ << absoluteError << “\r\n“;
cout << endl << “最大绝对误差: “ << absoluteError << endl;
//三次样条
outfile << “三次样条插值: \r\n“;
sY = spl2(num + 1 standX standY -2 1.2284e-5 x num);
for (int i = 0; i < num; i++) {
targetY[i] = *(sY + i);
i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 36864 2018-04-05 15:22 InterpolationC\.vs\Test\v14\.suo
文件 108544 2018-04-05 15:15 InterpolationC\Debug\Test.exe
文件 1291288 2018-04-05 15:15 InterpolationC\Debug\Test.ilk
文件 1757184 2018-04-05 15:15 InterpolationC\Debug\Test.pdb
文件 942 2018-04-05 15:15 InterpolationC\Test\Debug\Test.log
文件 273199 2018-04-05 15:15 InterpolationC\Test\Debug\Test.obj
文件 604 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\CL.command.1.tlog
文件 15220 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\CL.read.1.tlog
文件 396 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\CL.write.1.tlog
文件 1066 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\li
文件 2722 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\li
文件 374 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\li
文件 195 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog\Test.lastbuildstate
文件 396288 2018-04-05 15:15 InterpolationC\Test\Debug\vc140.idb
文件 479232 2018-04-05 15:15 InterpolationC\Test\Debug\vc140.pdb
文件 996 2018-04-05 11:03 InterpolationC\Test\Lagrange.h
文件 945 2018-04-05 10:57 InterpolationC\Test\Liner.h
文件 3746 2018-04-05 11:28 InterpolationC\Test\Test.cpp
文件 7431 2018-04-05 00:35 InterpolationC\Test\Test.vcxproj
文件 1334 2018-04-05 00:35 InterpolationC\Test\Test.vcxproj.filters
文件 496 2018-04-05 10:33 InterpolationC\Test\WriteFile.h
文件 1675 2018-04-05 15:05 InterpolationC\Test\YangTiao.h
文件 1294 2018-04-03 23:34 InterpolationC\Test.sln
文件 8630272 2018-04-05 15:22 InterpolationC\Test.VC.db
目录 0 2018-04-03 23:34 InterpolationC\.vs\Test\v14
目录 0 2018-04-05 15:15 InterpolationC\Test\Debug\Test.tlog
目录 0 2018-04-03 23:34 InterpolationC\.vs\Test
目录 0 2018-04-05 15:15 InterpolationC\Test\Debug
...D.H. 0 2018-04-03 23:34 InterpolationC\.vs
目录 0 2018-04-05 10:26 InterpolationC\Debug
............此处省略8个文件信息
- 上一篇:VC C++数字图像处理实验程序
- 下一篇:VC++串口通信20个经典源码
相关资源
- VC++串口通信20个经典源码
- VC C++数字图像处理实验程序
- 五个小程序 VC++的源代码
- C++MFC实训_计算器_附实训报告
- 实用C++调试指南
- C++网络对战版五子棋
-
c++实现解析xm
l - 毕业设计c++程序设计教学网站
- C++ MFC编写的计算器含各种进制转化、
- vc++ MD5算法源码
- 自制杀毒软件C++源码
- 数据结构 图 景点信息管理系统
- 21天学通 C++第8版)完整高清
- More Effective C++ 侯捷翻译 高清带书签
- 高速上手 C++ 11 14 17
- c++21点游戏 命令行界面
- C++程序编写的打地鼠游戏
- c++ 代码重用教程
- C_C++程序员面试宝典 文字版 非扫描
- 求图中任意两点的最短路径和全部路
- Design Patterns in Modern C++-Apress(2018)
- Visual C++ 2010 Express 中文版安装文件 器
- 0-9手写数字识别C++实现
- 在线考试系统 + C++ +access
- C++ MFC 编写的聊天室软件源码
- C++编程思想C++编程思想
- linux libstdc++.so.6库
- C++语言程序设计学生用书[aOkREm]
- C++经典程序100例
- Problem Solving with C++ 10th Global Edition
评论
共有 条评论