Результат работы программы

Результат работы программы

Теоретические выкладки

Общая теория.

Пусть на отрезке [a, b] ⊂R рассматривается функция f(·)и пусть известны её значения в

(n+ 1) разных узлах: принадлежащих [a, b]. Возьмём многочлен степени n

Pn(x)=

Коэффициенты избираем так, чтоб совпадали значения f(·) и Pn(·) в узлах интерпо-лирования{xi}:

Pn(x)=f(xi), i = 0,1,2, . . . , n . (2)

Эти равенства Результат работы программы дают квадратную систему линейных алгебраических уравнений относительно неизвестных{ai}, причём определитель её сущность определитель Вандермонда, что гарантирует существование и единственность решения СЛАУ (2).

Разыскиваемый интерполяционный полином может быть представлен в виде

Pn(x)=Ln(x)= (3)

Многочлены{ }называют множителями Лагранжа

= =

где ωn+1(x) = , а формулу (3) формулой Лагранжа для интерполирующего многочлена Ln(x). Нередко Результат работы программы интерполяционный полином Ln(·) именуют

просто полиномом Лагранжа.

Если считать [a,b] [−1,1], то беря во внимание характеристики полиномов Чебышева можно утверждать, что ωn+1(x) =Tn+1(x) = Tn+1(x). В общем же случае [a,b] [-1;1] довольно сделать преобразование[a, b]→[−1,1] и получим разыскиваемые узлы{xi}в виде:

xi = . (6)

Таким макаром формула Лагранжа для равноотстоящих Результат работы программы узлов воспримет вид:

Ln(x)= где q= и h=

Решение определенной задачки:

1. Область определения функции вся числовая ровная. Возьмем просвет [-2;2]

2.Будем вычислять узлы полинома с шагом 0.2. Возьмем 5 узлов. Для наглядности сопоставления результатов по различным формулам будем выводить итог в "Контрольных точках": -0.3 , 0.2 , 0.75.

3.Будем вычислять узлы полинома также с шагом 0.2. Но Результат работы программы возьмем 7 узлов. Будем использовать контрольные точки такие же как в пт 2.

4.Функция определенана всем интервале.Потому мы можем создавать построения полинома также в промежутке [-2;2]. Пункты 2-3 для этой функции проведем с аналогичным шагом, количеством узлов и контрольными точками.

Код программки

#include "stdafx.h"

#include

#include

#include

#include

using namespace Результат работы программы std;

#define PI 3.14159265

typedef double (*function)(double);//?

void delenie(double *points, double a, double b, int n)//делим на равные отрезки

{

for (int i=0; i

{

points[i]=a+i*(b-a)/(n-1);

}

}

void viborka(double *points, double a, double b, int n)//2-ой метод выбора точек, через формулу

{

for (int i=0; i

{

points[i]=cos(PI*(2*i+1)/(2*n))*(b-a)/2+(b+a)/2;

}

}

double polinom(double x, int k, double *points, int n)

{

double result=1;

for (int i=0; i

{

if (i!=k)

{

result=result*(x-points[i])/(points[k]-points[i]);

}

}

return result;

}

double L4(function f, double *points, double Результат работы программы x, int n)

{

double result = 0;

for (int i = 0; i < n; i++)

{

result =result + f(points[i]) * polinom(x,i,points,n);

}

return result;

}

double func(double x)

{

return sqrt(x)-cos(x); //my function

}

int main()

{

double a=0, b=2, step; //my interval

int n, m=3;

cout<<"Count of points Результат работы программы: ";

cin>>n;

cout<<"Interpolation step: ";

cin>>step;

double *checkpoints=new double[m], *delenie_points=new double[n], *viborka_points=new double[n];

checkpoints[0]=0.0; //my checkpoints

checkpoints[1]=0.2;

checkpoints[2]=0.75;

delenie(delenie_points,a,b,n);

viborka(viborka_points,a,b,n);

cout<<"x f(x) L4_R(f,x) L4_0f(x)"<

for Результат работы программы (double x=a; x<=b; x+=step)

{

cout<

}

cout<<"two"<<"xk"<<" "<<"f(xk)"<<" "<<"L4(equidistant_nodes,xk) L4(optimal_nodes,xk)"<

for (int i=0; i<3; i++)

{

cout<

}

system ("pause");

return 0;

}

Итог работы программки

1)

Функция: f(x) =x3-ex+ 1

Количество узлов: 5

Шаг интерполяции: 0.2

xk f(xk) Равностоящие узлы Корешки полинома Чебышева
-0.3 -0.767818 -0.77737 -0.78005
0.2 -1.2134 -1.20603 -1.20409
0.75 -1.69513 -1.68311 -1.67512

2)

Функция: f(x) =x3-ex+ 1

Количество узлов: 7

Шаг интерполяции: 0.2

xk f(xk) Равностоящие узлы Корешки Результат работы программы полинома Чебышева
-0.3 -0.767818 -0.767672 -0.767452
0.2 -1.2134 -1.21353 -1.21369
0.75 -1.69513 -1.69504 -1.69533

3)

Функция: f(x) =|x|*(x3-ex+ 1)

Количество узлов: 5

Шаг интерполяции: 0.2

xk f(xk) Равностоящие узлы Корешки полинома Чебышева
-0.3 -0.230345 0.33681 0.429212
0.2 -0.242681 -0.383531 -0.435411
0.75 -1.27134 -1.46913 -1.61739

4)

Функция: f(x) =|x|*(x3-ex+ 1)

Количество узлов: 7

Шаг интерполяции: 0.2

xk f(xk) Равностоящие узлы Корешки полинома Чебышева
-0.3 -0.230345 -0.0186585 0.0572008
0.2 -0.242681 -0.190799 -0.214685
0.75 -1.27134 -1.28847 -1.26448


Перечень литературы

1.Методические указания по практикуму работы на ЭВМ, А.П. Иванов, Л Результат работы программы.Т.Позняк

2. http://ru.wikipedia.org/

3.Численные способы, Н.С. Бахвалов, Н.П. Жидков, Г.М.Кобельков


rezultati-golosovaniya-13-chas-42-min-27-sek-reshenie-kvorum-est.html
rezultati-golosovaniya-14-chas-01-min-33-sek-byulleten-225-424.html
rezultati-golosovaniya-14-chas-41-min-06-sek-byulleten-237-436.html