📄 interp.cpp
字号:
// interp - Program to interpolate data using Lagrange // polynomial to fit quadratic to three data points#include "NumMeth.h"double intrpf( double xi, double x[], double y[]);void main() { //* Initialize the data points to be fit by quadratic
double x[3+1], y[3+1]; cout << "Enter data points:" << endl; int i;
for( i=1; i<=3; i++ ) { cout << "x[" << i << "] = "; cin >> x[i]; cout << "y[" << i << "] = "; cin >> y[i]; } //* Establish the range of interpolation (from x_min to x_max) double x_min, x_max; cout << "Enter minimum value of x: "; cin >> x_min; cout << "Enter maximum value of x: "; cin >> x_max; //* Find yi for the desired interpolation values xi using // the function intrpf int nplot = 100; // Number of points for interpolation curve double *xi, *yi; xi = new double [nplot+1]; // Allocate memory for these yi = new double [nplot+1]; // arrays (nplot+1 elements) for( i=1; i<=nplot; i++ ) { xi[i] = x_min + (x_max-x_min)*(i-1)/(nplot-1); yi[i] = intrpf(xi[i],x,y); // Use intrpf function to interpolate } //* Print out the plotting variables: x, y, xi, yi ofstream xOut("x.txt"), yOut("y.txt"), xiOut("xi.txt"),
yiOut("yi.txt"); for( i=1; i<=3; i++ ) { xOut << x[i] << endl; yOut << y[i] << endl; } for( i=1; i<=nplot; i++ ) { xiOut << xi[i] << endl; yiOut << yi[i] << endl; }
delete [] xi, yi; // Release memory allocated by "new"}/***** To plot in MATLAB; use the script below ********************
load x.txt; load y.txt; load xi.txt; load yi.txt;
plot(x,y,'*',xi,yi,'-');
xlabel('x'); ylabel('y');
title('Three point interpolation');
legend('Data points','Interpolation');
******************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -