Добавить в цитаты Настройки чтения

Страница 2 из 2

BEGIN

REPEAT WRITE ('C,Z0,Z9,H?');READLN(C,Z0,Z9,H); K:=ROUND((Z9-Z0)/Н+1.0); Z:=Z0;

FOR I:=1 TO К DO BEGIN SIMPE(0.0,3.1415925/2,E,F,S);

WRITELN(Z,' ',S); Z:=Z+H; END; UNTIL FALSE; END.

Пример программы на языке Basic

10 DEF FNA(Х) =SQR(1-Z*SIN(X)^2)

20 PRINT "E,Z0,Z9,H1";: INPUT E,Z0,Z9,H1

30 A=0 : B=PI/2

40 FOR Z=Z0 ТО Z9 STEP H1

50 GOSUB 100

40 PRINT Z,S : NEXT Z

90 GOTO 10

100 E1=E*15 : H=(B-A)/2

110 S=2*FNA(A+H) : S1=FNA(A)+FNA(B)+S : S=S1+S

120 S2=0 : S3=S : H2=H : H=H/2

130 FOR X=A+H TO В STEP H2 : S2=S2+FNA(X):NEXT X

140 S2=2*S2 : S1=S1+S2 : S=S1+S2

150 IF ABS(1-S/(2*S3))>E1 THEN 120

140 S=S*H/3

190 RETURN

Метод МОНТЕ-КАРЛО

Программно генерируются случайные числа и значение интеграла определяется как соотношение количества чисел, попавших в пределы функции, к общему количеству чисел.

Геометрическая интерпретация метода:

Пример программы на языке Basic

10 DEF FNY(X)=COS(P*X-Z*SIN(X))

20 PRINT "ВАРИАНТ"; : INPUT I

30 PRINT "N,P,Z"; : INPUT N,P,Z

35 A=0 : B=PI

40 IF I = 1 THEN GOSUB 100

50 IF I=2 THEN GOSUB 200

60 PRINT "S="S/PI

90 GO TO 20

100 H=B-A : S=0

110 FOR I = 1 TO N : S=S+FNY(A+RND(1)*H) : NEXT I

120 S=H*S/N

190 RETURN

200 H=B-A : S=0 : R=0

210 F=FNY(A+RND(1)*H)

215 IF RND(1)<ABS(F) THEN S=S+SGN(F)

220 R=R+1 : IF R< N THEN 210

230 S=H*S/N

290 RETURN

РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ ВИДА – ФУНКЦИЯ ОТ Х = 0

Метод половинного деления

Уравнение может быть записано в общем виде: F(X)=0.

Решение задачи состоит из двух этапов:

1) отделение корней – выделение отрезков [ab], принадлежащих области определения функции f(x), на которых расположен один и только один корень уравнения, то есть один нуль функции f(X).

2) уточнение корней с любой степенью точности – построение процесса, позволяющего как угодно сузить границы выделенного отрезка. Критерием является следующий: функция f(x) на отрезке [a b] должна быть непрерывна и монотонна, а ее значения на концах отрезка должны иметь разные знаки. Для отделения корней используются два метода.

Аналитический метод: Для отделения действительных корней необходимо указать интервалы монотонности функции f(x), т.е. интервалы, в которых знак первой производной постоянный, а для этого решить уравнение f′(x) = 0 и подсчитать значение функции f(x) в точках корней уравнения и в граничных точках области определения функции. Отрезки, на концах которых у функции разные знаки, содержат корень.

Графический метод: Нужно построить график функции f(x) и выделить отрезки, где функция непрерывна, монотонна и имеет разные знаки на его концах.

Алгоритм метода половинного деления:

Геометрическая интерпретация метода:

Решить задачу:

Методом половинного деления найти корень уравнения x-Cos(x)=0.

Пример программы на языке C#

double x, left = 0, right = 1;

do      {      x = ( left + right ) / 2;

if ( ( Math.Cos(x) – x ) * ( Math.Cos(left) – left ) < 0 )

right = x;      else left = x;      }

while ( Math.Abs( right – left ) >1e-4 );

Console.WriteLine( "Корень равен " + x );

Пример программы на языке Pascal

PROGRAM P9;

FUNCTION FUN(A:REAL):REAL;

BEGIN

FUN:=A-COS(A);

END;

VAR A,B,X:REAL;

BEGIN

WRITELN('Ввести интервал А и В для поиска корня = ');

READLN(A,B);

REPEAT X:=0.5*(A+B);

IF FUN(X)*FUN(A)<0 THEN B:=X ELSE A:=X;





UNTIL ABS(A-B)<1E-4;

WRITELN(' Корень уравнения ',X);

END.

(Тест: Интервал 0 и 1; Ответ = 0.73907470703125)

Решить задачу:

Найти корень уравнения на отрезке [1; 2] с точностью =10-4 методом половинного деления.

Пример программы на языке Pascal

CONST       A = 1;B = 2;EPS = 1E-4;

VAR      X1, X2, X, Y1, Y2: REAL;F : BOOLEAN;

BEGIN

X1 := A; X2 := B; F := TRUE;

WHILE F DO

      IF ABS (X1 – X2) > EPS THEN

            BEGIN

Y1 := COS(2/X1) – 2*SIN(1/X1) + 1/X1;      X := (X1 + X2)/2;

Y2 := COS(2/X) – 2*SIN(1/X) + 1/X;

IF ABS(Y2) > EPS THEN

IF Y1*Y2 > 0 THEN X1:= X ELSE X2:= X

ELSE F := FALSE END ELSE F:= FALSE;

WRITELN (‘КОРЕНЬ УРАВНЕНИЯ ’,X);

END.

Ответ 1,875

Пример программы на языке Basic

10 DIM P(9)

20 PRINT " А,В,Е " ; : INPUT А,B,Е

30 PRINT "СКОЛЬКО ПАРАМЕТРОВ"; : INPUT N

40 FOR К=1 TO N : PRINT "Р"К; : INPUT Р(К) : NEXT К

50 GOSUB 100

60 PRINT "Х=”Х

90 GOТО 20

100 Х=А : GOSUB 200

110 S=SGN(F)

120 X = (А+В)/2 : GOSUB 200

130 IF ABS(F)<Р(2) THEN RETURN

140 IF SGN(F)=S THEN A=X : GOTO 160

150 B=X

160 IF B-A>E THEN 120

190 RETURN

200 R=1 : R1=SQR(1-Х)

210 R2=(R+R1) /2 : R1=SQR (R*R1) : R=R2

220 IF R-R1 >P(2) THEN 210

230 F=R*P(1)-PI/2

290 RETURN

Пример программы на языке Pascal

VAR P: ARRAY [1..9] OF REAL; A,B,X,E:REAL;N,K:INTEGER;

FUNCTION F(X:REAL):REAL;

VAR R,R1,R2: REAL;

BEGIN R:=1.0; R1:=SQRT (1.0-X); WHILE R-R1 >P[2] DO BEGIN

R2:=(R+R1)/2; R1:=SQRT(R*R1); R:=R2; END;

F:=(R+R1)*P[1]-3.14159265; END;

FUNCTION SGN(X:REAL):INTEGER;

BEGIN SGN:=0;

IF X<0.0 THEN SGN:=-1;

IF X>0.0 THEN SGN:=1; END;

PROCEDURE DICH(VAR A,В,X,E,E1:REAL; FUNCTION F:REAL);

VAR I:INTEGER; R:REAL;

BEGIN I:=SGN(F(A)); WHILE B-A>E DO BEGIN

X:= (A+B) /2; R:=F(X); IF ABS(R)<E1 THEN EXIT;

IF SGN(R)=I THEN A:=X ELSE B:=X;END;END;

BEGIN

REPEAT WRITE(‘A,B,E?'); READLN(A,В,E); WRITE('СКОЛЬКО ПАРАМЕТРОВ? '); READLN(N);

FOR K:=1 TO N DO BEGIN

WRITE(‘P(‘,K:2, ')? '); READLN (Р[К]);END;

DICH(A,B,X,E,P[2],F); WRITELN('X=’,X); UNTIL FALSE; END.

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

Уравнение f(x)=0 представляется в виде x=φ(x),где φ(x)определяется одним из способов:

φ(x)= x – αf(x),где α=const

φ(x)= x + ρ(x)f(x), где ρ(x)-произвольная функция не имеющая корней на отрезке (a/b).

Метод простой итерации определяется формулой: xn+1=φ(xn), n=0,1,2,3… где n-номер итерации,x0-произвольно заданное начальное приближение.

Процесс сходится к корню уравнения, если на отрезке (ab) выполняется условие: φ′(x) <= q < 1.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.