Численные методы и оптимизация, страница 2

На отрезке   [3;5] функция F2(x) монотонно убывает, причем F2'(x) сохраняет знак, отрезок [3;5] содержит корень.

На отрезке   [13;15] функция F2(x) монотонно возрастает, причем F2'(x) сохраняет знак, отрезок [13;15] содержит корень.

Уточним корни методом Итераций. Воспользуемся предложенной методикой получения функции.

F2(x) – дифференцируемая и имеет разные знаки на отрезках [3;5] и [13;15].

F2’(3)<0, F2’(5)<0, F2’(x)=0

F2’(13)>0, F2’(15)>0, F2’(x)=0

Интегрирующая функция  (x) =  *F2(x) + x обеспечивает выполнение условий сходимости |  (x)|<1

Правила выбора параметра    :

-1/r <   <0, если F2’(x) > 0

0 <   <1/r, если F2’(x) , 0,

r = max (|F2’(a)|,|F2’(b)|).

На отрезке [3;5] r = max (0.32;0.22), следовательно, r = 0.32.

Т.к. F2’ < 0, 0 <    <1/0.32, пусть      = - 2/

На отрезке [13; 15] r = max (0.18;0.28), следовательно, r = 0.28

Т.к. F2’(x)>0, -1/0.28 <     < 0, пусть      = - 2

На отрезке [3;5]           =2                  x0=4

На отрезке [13;15]       =-2                 x0=15

Условия окончания поиска корня:

|Xn – Xn+1| < E

F2’(Xm) – F2(Xm+1) < E

Оценка погрешности корня:

|x*-xn| <= m*q/(1-q); q=max |   ‘(x)|; m= |x0 -     (x0)|.

На отрезке [3;5]:q=1.5963,

(x)=x;    (4) = 3.98624

M=0.01376.

На отрезке [13;15]:      ‘(x)=0.106349x,   q=1.5952,

(14) = 13.5772; m=0.4227.

Результаты решения уравнений F2(x):

На отрезке [3;5] x = 4.0101372

На отрезке [13;15] x = 14.795575

Задание 3.   Интеграл  F2(x)dx вычислить, полагая n = 10 и n = 20 методами Симпсона, трапеций и средних прямоугольников.

Формула метода средних прямоугольников:

F2(x)dx  = hΣF2(α  + kh ) ,k-степень используемого полинома, k=2

где       α = а +  ,       h = xi+1xi =

Формула метода трапеций:

∫ F2(x)dx  =   (F2(a)  +  F2(b)  +  2 Σ F2 (α  + ih ),

где h = xi+1xi =  ,

Формула метода Симпсона:

∫ F2(x)dx  =  [(F2(a)  +  F2(b)  +  4 (F2(x1) + F2(x3) + … + F2(x2n-1))  + 2( F2(x2) + F2(x4)  + … + F2(x2n-2)) ] ,

где h = xi+1xi =  ,

Результаты занесем в таблицу .

n

Метод средних прямоугольников

Метод трапеций

Метод Симпсона

10

I = -5.349468

I = -5.269625

I = -5.322854

20

I = -5.329504

I = -5.309546

I = -5.322853

Оценка погрешности по правилу Рунге:  R =|Ih-Ih/2|/(2^k-1)

Для методов средних прямоугольников и трапеций    k  =  2 ,                    

Rср.пр. =   6.6546E-03   Rтрап. = 1.3307E-02

Для метода Симпсона    k  =  4 , Rс  =  1E-09

Задание 4. Для нахождения точки экстремума применим методы дихотомии и золотого сечения. Проверка унимодальности необходима для использования указанных методов оптимизации.

f(x) = F2(x)

F2(x) = 2.545536E-02*x^2 – 0.474787107*x*1.510357

F’’(x) = 0.509, f’’(x) > 0, следовательно,

F2(x) – унимодальная схема и имеет локальный минимум. «Золотое сечение осуществляется двумя точками:

X1 = a+(3- 5)/2*(b – a ) = a+k1(b-a),

X2 = a+(  - 1)/2*(b-a)=a+k2(b-a),

Где x1 – вторая точка золотого сечения отрезка [a;x2],

X2 – первая точка золотого сечения отрезка [x1;b].

X*=(an + bn)/2.

Взяв в качестве натурального отрезка [0 ; 2] и точность    =0.0001, получим:

Xm = 1.999959, f(xm) = fm = 0.6547724

Текст программы:

DECLARE SUB GOLD (N!, AI!, BI!, DE!, A!(), XM!, FXM!)

DECLARE SUB DIHOTOM (N!, AI!, BI!, DE!, A!(), XM!, FXM!)

DECLARE SUB SIMP (N!, X1!, X2!, A!(), I!)

DECLARE SUB TRAP (N!, X1!, X2!, A!(), I!)

DECLARE SUB PRJAM (N!, X1!, X2!, A!(), I!)

DECLARE SUB NJUTON (DE!, X!, A!(), N!)

DECLARE SUB GAUSS (K!, G!(), B!(), A!())

DECLARE SUB GRAM (I!, K!, G!(), X!(), Y!(), B!())

DECLARE SUB ITER (DE!, L!, X!, A!(), N!)

CLS

DATA 5

READ I

DATA 2

READ K

DIM X(I), Y(I), B(K), A(K)

DIM G(K, K)

DATA 0,2,4,6,8,10

FOR N = 0 TO I

READ X(N)

NEXT N

DATA 1,1.386,.406,-.939,-1.286,-.266

CLS

FOR N = 0 TO I

READ Y(N)

NEXT N

PRINT "МатрицаГраммма"

CALL GRAM(I, K, G(), X(), Y(), B())

FOR L = 0 TO K

FOR M = 0 TO K

PRINT "G"; L; ","; M; "="; G(L, M); "   ";

NEXT M

PRINT "B"; L; "="; B(L)

NEXT L

PRINT "Решение системы уравнений"

CALL GAUSS(K, G(), B(), A())

FOR N = 0 TO K

PRINT "A"; N; "="; A(N)

NEXT N

PRINT "Значение апроксимирующей функции"

DIM YA(I)

FOR N = 0 TO I

FOR L = 0 TO K

YA(N) = YA(N) + A(L) * X(N) ^ L

NEXT L

PRINT "YA("; X(N); ")="; YA(N)

R = R + ((YA(N) - Y(N)) ^ 2)

NEXT N