h
4
49 / 49*
48 / 55*
48 / 172
48 / 51
5
31 / 71*
31 / 49*
31 / 34
31 / 26
6
24 / 37*
24 / 31*
24 / 28
24 / 26
7
37 / 71*
35 / 42*
35 / 40
35 / 49
8
40 / 49*
43 / 64*
43 / 59
43 / 55
9
30 / 46*
30 / 36*
30 / 48
30 / 37
10
42 / 31*
42 / 50*
42 / 45
42 / 42
11
36 / 34*
36 / 34*
36 / 37
36 / 41
12
38 / 49*
39 / 48*
39 / 39
39 / 37
13
37 / 53*
38 / 52*
38 / 43
38 / 40
14
37 / 43*
37 / 57*
37 / 43
37 / 51
15
41 / 46*
42 / 75*
42 / 48
42 / 43
16
35 / 49*
35 / 66*
35 / 37
35 / 35
17
41 / 52*
40 / 51*
40 / 55
40 / 41
18
41 / 37*
44 / 90*
42 / 45
43 / 44
Как видно из таблицы правая РП более чувствительна к изменению шага h чем центральная. Из этого следует, что ЦРП имеет меньшею погрешность нахождения производной, чем ПРЦ.
К тому же, при больших значения h применение ПРП, в данном примере, привило к очень малому изменению аргументов, т.е. к зацикливанию.
В таблице (*) помечено то количество итераций, где применение ПРП привело к зацикливанию, что не позволило достичь заданной точности (из-за этого значения некоторых чисел у ПРП меньше чем у ЦРП).
Можно увидеть, что при h равномииспользование ЦРП эффективнее чем ПРП.
Для сравнения ПРП и ЦРП при большом шаге h точность для останова сделаем более грубой . Тогда увидим, что:
n | h | |||
5 | 22 / 21* | 20 / 36* | 20 / 24 | 20 / 21 |
6 | 13 / 25* | 15 / 19* | 15 / 26 | 15 / 18 |
7 | 20 / 29* | 19 / 29* | 19 / 23 | 19 / 19 |
Видно, что при h равномииспользование ЦРП по-прежнему эффективнее, чем ПРП. А при h равноми , даже при не достижении требуемой точности у ПРП, количество итераций при использовании ЦРП меньше чем при использовании ПРП.
Можно сделать вывод, что применение центральной РП предпочтительней, как с точки зрения эффективной работы программы, так и с точки зрения быстроты получения результата.
Код программы на Си:
#include
#include
#include
#define EPS 0.000000002
#define f function
#define nv the_number_of_variables
#define CENTRAL 0
#define RIGHT 1
#define LEFT 2int the_number_of_variables = 4;function(double * x){pow(x[0]+10*x[1],2)+5*pow(x[2]-x[3],2)+pow(x[1]-2*x[2],4)+10*pow(x[0]-x[3],4);
}* ToRus(const char text []);* gradient(double * x, double h, int ds);CentralDS(double * x, double h, int i);RightDS(double * x, double h, int i);LeftDS(double * x, double h, int i);(*DS[3])( double * x, double h, int i ) = {CentralDS, RightDS, LeftDS};NormaV(double * x, int n);* minimi(double * x, double * p, double dx);zoloto(double * x, double * p, double a, double b, double eps);argminf(double * x, double * g, double eps);main(){i, k, n, ds;*g, *g_old, *x, *p, yI,yII;eps1, eps2, h, Sc, Sz, betta, alfa;= (double *)malloc(nv*sizeof(double));= (double *)malloc(nv*sizeof(double));
k = 1;= 6;//цикличность(через сколько итерации произойдет рестарт)= 0.001;= 1e-6;=1e-6;//шаг при вычисления градиента в РС
ds = CENTRAL;//RIGHT("%s ",ToRus("При расчетах использована"));(ds+1){1: printf("%s",ToRus("центральная"));break;2:
Похожие работы
Тема: Расчет схемы электроснабжения РП 589 лавы и РП 589 сборного штрека |
Предмет/Тип: Физика (Курсовая работа (т)) |
Тема: Радиоприемник "АБАВА РП-8330" |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Курсовая работа (т)) |
Тема: Метод сопряженных направлений |
Предмет/Тип: Математика (Курсовая работа (т)) |
Тема: Квалификация преступлений, сопряженных с насилием |
Предмет/Тип: Основы права (Курсовая работа (т)) |
Тема: Криминалистическая характеристика преступлений, сопряженных с изнасилованием |
Предмет/Тип: Криминология (Реферат) |
Интересная статья: Быстрое написание курсовой работы