資源簡介
該程序由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“?< 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?<“插值點數為:?“?< double?step?=?6?/?double(num); //步長
standX[0]?=?0;
int?k?=?0;
//cout?<“the?step?is:?“?< 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?< outfile?< k++;
}
outfile?<“\r\n“;
cout?<
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?< }
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?< outfile?< k++;
}
cout?< outfile?<“\r\n“;
outfile?<“標準結果:?\r\n“;
cout?<“標準結果:?\r\n“;
sY?=?calculateVlaue(x?k);//計算要求的x值對應的標準y值
for?(int?i?=?0;?i? accurateY[i]?=?*(sY?+?i);
outfile?< }
outfile?<“\r\n“;
cout?< double?absoluteError?=?0;
//n階拉格朗日插值
outfile?<“拉格朗日插值:?\r\n“;
sY?=?Lagrange(num?standX?standY?x);
for?(int?i?=?0;?i? targetY[i]?=?*(sY?+?i);
if?(abs(targetY[i]?-?accurateY[i])?>?absoluteError)?{
absoluteError?=?abs(targetY[i]?-?accurateY[i]);
}
outfile?< }
outfile?<“\r\n“;
outfile?<“最大絕對誤差:?“?< cout?< absoluteError?=?0;
//分段線性插值
outfile?<“分段線性插值:?\r\n“;
sY?=?Liner(num?standX?standY?x);
for?(int?i?=?0;?i? targetY[i]?=?*(sY?+?i);
if?(abs(targetY[i]?-?accurateY[i])?>?absoluteError)?{
absoluteError?=?abs(targetY[i]?-?accurateY[i]);
}
outfile?< }
outfile?<“\r\n“;
outfile?<“最大絕對誤差:?“?< cout?<
//三次樣條
outfile?<“三次樣條插值:?\r\n“;
sY?=?spl2(num?+?1?standX?standY?-2?1.2284e-5?x?num);
for?(int?i?=?0;?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個經典源碼
評論
共有 條評論