#include <iostream> #include <math.h> using namespace std; class cubic { public: void askAll(); void askI(); void askX(); void askFi(); void askXi(); void findA(); void findH(); void findS(); void findU(); void solve(); private: double xi[20],f[20],h[19],s[19],a[20],u[20]; int Inumber; double XX; }; void cubic::askX() { cout << "Enter X: "; cin >> XX; } void cubic::askI() { cout << "Enter number of Items: "; cin >> Inumber; } void cubic::askXi() { for(int i = 0; i < Inumber; i++) { cout << "Enter X" << i << ": "; cin >> xi[i]; } } void cubic::askFi() { for(int i = 0; i < Inumber; i++) { cout << "Enter F" << i << ": "; cin >> f[i]; } } void cubic::findU() { for(int i = 0; i < Inumber; i++) { u[i] = XX - xi[i]; } } void cubic::findH() { for(int i = 1; i < Inumber; i++) { h[i] = xi[i] - xi[i-1]; } } void cubic::findA() { for(int i = 1; i < Inumber-1; i++) { a[i] = ( 6*( (f[i+1]-f[i])/h[i+1] - (f[i]-f[i-1])/h[i] ) - h[i]*a[i-1] - h[i+1]*a[i+1] ) / (2*( h[i] + h[i+1] )); } } void cubic::findS() { int k; for(int i = 1; i < Inumber; i++) { if(XX>=xi[i-1]&& XX<=xi[i]){ s[i] = a[i-1]/(6*h[i]) * ( pow(h[i],2)*u[i] - pow(u[i],2) ) + a[i]/(6*h[i]) * ( pow(u[i-1],3) - pow(h[i],2)*u[i-1] ) + 1/h[i] * (f[i]*u[i-1] - f[i-1]*u[i]); k = i; } } cout << "s "<< s[k]; } void cubic::askAll() { askI(); askXi(); askFi(); askX(); a[0] = 0; a[Inumber-1] = 0; } void cubic::solve() { findH(); findU(); findA(); findS(); } int main() { cubic c1; c1.askAll(); c1.solve(); return 0; }
C and C++ programs, games, softwares. Easy programming guide. Learn to code and enjoy coding in CoderNepal
Home » Numerical Method » C++ code to find Interpolated Value using Cubic Splines Interpolation
Wednesday, April 12, 2017
C++ code to find Interpolated Value using Cubic Splines Interpolation
This is the solution to find Interpolated Value at given point using Cubic Splines Interpolation
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment