Разработка программного проекта
Рисунок 4. Блок схема метода Вегстейна. Рисунок 3. Блок схема метода Эйткена. Printf («Eitken: f (%f) = %f «, X, Eitken (X, 10)); Double Eitken (double X, int n). Y=1/(x-x)*((X-x)*Y-(X-x)*Y); For (int i=j-1; i≥0; i—). Метод Эйткена. For (int j=0; j≤n; j++){. X = 6.0424; f = 62.0144; X = 5.1672; f = 28.6035; X = 4.5024; f = 13.1676; X = 2.4232; f = -0.3474; X = 2.1920; f = -0.1849; X = 0.9648; f… Читать ещё >
Разработка программного проекта (реферат, курсовая, диплом, контрольная)
Реализация в С++
Метод Эйткена.
#include.
#include.
double x[11], f[11];
double Eitken (double X, int n).
{.
double Y[51][51];
for (int j=0; j<=n; j++){.
Y[j][j]=f[j];
for (int i=j-1; i>=0; i—).
Y[i][j]=1/(x[j]-x[i])*((X-x[i])*Y[i+1][j]-(X-x[j])*Y[i][j-1]);
}.
return Y[0][n];
}.
void main ().
{.
double X = 2.4800;
x[0] = 0.8496; f[0] = -0.3721;
x[1] = 0.9648; f[1] = -0.0742;
x[2] = 1.4072; f[2] = 0.3845;
x[3] = 1.8048; f[3] = 0.1878;
x[4] = 2.1920; f[4] = -0.1849;
x[5] = 2.4232; f[5] = -0.3474;
x[6] = 3.6152; f[6] = 2.5986;
x[7] = 3.6800; f[7] = 3.0616;
x[8] = 4.5024; f[8] = 13.1676;
x[9] = 5.1672; f[9] = 28.6035;
x[10] = 6.0424; f[10] = 62.0144;
printf («Eitken: f (%f) = %f «, X, Eitken (X, 10));
}.
В функции double Eitken реализована формула по которой производится вычисление значений.
Сравнение методов
Как показываю многочисленные опыты с уравнениями вида, особый интерес среди которых вызывают случаи, когда простые итерации дают расходящиеся последовательности, метод Вегстейна имеет определённые преимущества перед методом Эйткена по количеству обращений к вычислению значений для получения корня с заданной точностью. На рисунке 3 и на рисунке 4 изображены блок схемы метода Эйткена и Вегстейна соответственно.
Рисунок 3. Блок схема метода Эйткена
Рисунок 4. Блок схема метода Вегстейна.
Чаще всего, метод Вегстейна ещё и позволяет в более широких пределах варьировать выбор начальной точки. Результаты сравнения двух методов на некоторых уравнениях можно посмотреть в таблице. В двух её последних столбцах указано количество вычислений значений функции (горнеров), потребовавшееся для достижения точки (прилижённого значения корня), такой что .