C/C++
Программирование помогите пж C++
Краткая теория Алгоритм вычисления полинома в форме Лагранжа позволяет разделить задачи определения коэффициентов и вычисления значений полинома при различных значениях аргумента: 1. В качестве исходных данных задается выборка из n-точек, которая включает в себя значения функции и значения аргумента функции. 2. Выполняется вычисление полинома n-степени в форме Лагранжа по следующей формуле: Алгоритм вычисления полинома в форме Лагранжа представлен на рисунке 2. Рисунок 1 – Методика вычисления полинома в форме Лагранжа
А что тут нужно делать? Откуда берутся массивы узловых значений? Как поступать с интерполяционным полиномом?
Можно попробовать вводить разные узловые значения координат, упорядочивать их по возрастанию их абсцисс и печатать таблицу равномерной табуляции интерполяционного полинома.
#include <iostream>
#include <iomanip>
using namespace std;
double Lagrange(double x,
double *X, double *Y, int N)
{
double sum = 0., product;
int i, j;
for (i = 0; i <= N; i++)
{
product = 1.;
for (j = 0; j <= N; j++)
if (j == i) continue; else
product *= (x - X[j]) / (X[i] - X[j]);
sum += product * Y[i];
}
return sum;
}
int main()
{
int i, j, n;
double a, h, x, u, v;
cout << "n » ";
cin >> n;
double *X = new double [n + 1],
*Y = new double [n + 1];
cout << "x y(x): " << endl;
for (i = 0; i <= n; i++) cin >> X[i] >> Y[i];
for (i = 1; i <= n; i++) for (j = n; j >= i; j--)
if (X[j - 1] > X[j])
{
u = X[j - 1];
v = Y[j - 1];
X[j - 1] = X[j];
Y[j - 1] = Y[j];
X[j] = u;
Y[j] = v;
}
for (i = 0; i <= n; i++)
cout << setprecision(10) << fixed
<< setw(15) << X[i] << setprecision(15)
<< setw(20) << Y[i] << endl;
cout << endl;
h = (X[n] - X[0]) / n;
for (i = 0; i <= n; i++)
{
x = X[0] + i * h;
cout << setprecision(10) << fixed
<< setw(15) << x << setprecision(15)
<< setw(20) << Lagrange(x, X, Y, n) << endl;
}
}
Можно попробовать вводить разные узловые значения координат, упорядочивать их по возрастанию их абсцисс и печатать таблицу равномерной табуляции интерполяционного полинома.
#include <iostream>
#include <iomanip>
using namespace std;
double Lagrange(double x,
double *X, double *Y, int N)
{
double sum = 0., product;
int i, j;
for (i = 0; i <= N; i++)
{
product = 1.;
for (j = 0; j <= N; j++)
if (j == i) continue; else
product *= (x - X[j]) / (X[i] - X[j]);
sum += product * Y[i];
}
return sum;
}
int main()
{
int i, j, n;
double a, h, x, u, v;
cout << "n » ";
cin >> n;
double *X = new double [n + 1],
*Y = new double [n + 1];
cout << "x y(x): " << endl;
for (i = 0; i <= n; i++) cin >> X[i] >> Y[i];
for (i = 1; i <= n; i++) for (j = n; j >= i; j--)
if (X[j - 1] > X[j])
{
u = X[j - 1];
v = Y[j - 1];
X[j - 1] = X[j];
Y[j - 1] = Y[j];
X[j] = u;
Y[j] = v;
}
for (i = 0; i <= n; i++)
cout << setprecision(10) << fixed
<< setw(15) << X[i] << setprecision(15)
<< setw(20) << Y[i] << endl;
cout << endl;
h = (X[n] - X[0]) / n;
for (i = 0; i <= n; i++)
{
x = X[0] + i * h;
cout << setprecision(10) << fixed
<< setw(15) << x << setprecision(15)
<< setw(20) << Lagrange(x, X, Y, n) << endl;
}
}
Я завтра в колетж приду что вы делаете скиньте ответ
Геннадий Проничев
хорошо xD xD xD xD xD xD xD
Похожие вопросы
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Может ли новичок в программирование начать с c++/Gamedev
- Помогите новичку с программированием и матрицами C++
- Стоит ли начинать изучение программированию с языка C?
- Помогите пж написать код на C++
- C++ помогите пж
- Программирование на языках C/C++
- Какие отличия(простыми словами) в языках программирования Java и C++? Что лучше изучать. У какого больше возможностей?
- Программирование , помогите написать контрольную
- Помогите в C/C++. Пример в столбик