Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11_числ_ мет.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.62 Mб
Скачать

Подпрограмма отделения корней нелинейных уравнений приложение 1

SUBROUTINE OTKOR (KSH,X1,X2)

* ОТДЕЛЕНИЕ КОРНЕЙ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

* KSH - КОЛИЧЕСТВО ШАГОВ ПО ОСИ АБСЦИСС

* X1,X2 - ЗНАЧЕНИЯ Х, ПРИ КОТОРЫХ F(X1) * F(X2) < 0

* X0 - НАЧАЛЬНОЕ ЗНАЧЕНИЕ Х

* SH - ШАГ ДВИЖЕНИЯ ПО ОСИ Х

PRINT*,’ ВВЕДИТЕ X0,SH ‘

READ(5,*) X0,SH

KSH =0

X1= X0

1 X2= X1+SH

KSH= KSH+1

IF (KSH.GT.100) GO TO 5

F1=F(X1)

F2=F(X2)

IF (F1*F2) 3,3,2

2 X1=X2

GO TO 1

3 PRINT 4,X1,X2,F1,F2

4 FORMAT (5X,'КОРЕНЬ УРАВНЕНИЯ НАХОДИТСЯ В ИНТЕРВАЛЕ '/

*21X,’X1=’,F8.2,6X,’X2=’,F8.2,/12X,’ПРИ ЭТОМ F(X1)= ’,F8.2,

*3X,’F(X2)=’,F8.2)

GO TO 10

5 PRINT 6,KSH,F1,F2

6 FORMAT (5X,’ПОСЛЕ ‘,I4,’ ШАГОВ ПЕРЕМЕНЫ ЗНАКА ‘/

* ’ФУНКЦИИ НЕ ПРОИЗОШЛО ‘/ 10X,’F1=’,F8.2,5X,’F2=’,F8.2)

10 RETURN

END

FUNCTION F(X)

* Решаемое уравнение

F=COS(2*X) -.25

END

Примечание. Подпрограмма FUNCTION F(X) в данном случае относится к уравнению COS2-0.25=0. Для каждого другого решаемого уравнения оператор F=... в подпрограмме F(X) пишется заново.

ПРИМЕР РЕШЕНИЯ УРАВНЕНИЯ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ

ПРИЛОЖЕНИЕ 2

PROGRAM RESH

* Головная программа

DO 5 N=6,7

WRITE(N,1)

1 FORMAT(5X,'РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ'/

*5X,'МЕТОДОМ ПОЛОВИНОГО ДЕЛЕНИЯ')

WRITE(N,2)

2 FORMAT(5X,'РЕШАЕМОЕ УРАВНЕНИЕ Y=COS(2*X)-0.25')

5 CONTINUE

CALL OTKOR(N,X1,X2)

IF(N.GT.100) GO TO 10

PRINT*,’Введите допускаемую погрешность EPS’

READ(5,*)EPS

CALL DELPO (X1,X2,EPS,X,K)

CALL IDRES(X1,X2,EPS,X,K)

10 STOP

END

SUBROUTINE DELPO (A,B,EPS,X,K)

* РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

* МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ

K=0

X1=A

X2=B

1 X=(X1+X2)*0.5

K=K+1

C=F(X)

IF (ABS(C).LE.EPS) GO TO 4

IF ((X2-X1).LE.EPS) GO TO 3

IF (C*F(X2).LT.0.) GO TO 2

X2=X

GO TO 1

2 X1=X

GO TO 1

3 X=(X1+X2)*0.5

4 RETURN

END

SUBROUTINE IDRES (XN,XK,EPS,X,K)

* РАСПЕЧАТКА ИСХОДНЫХ ДАННЫХ И РЕЗУЛЬТАТОВ РАСЧЕТА

C=F(X)

DO 20 I=6,7

WRITE(I,1)

1 FORMAT(//2X,16(‘-‘), ’ ИСХОДНЫЕ ДАННЫЕ’, 16(‘-‘))

WRITE(I,2)XN,XK,EPS

2 FORMAT (/2X,’НАЧАЛО ОТРЕЗКА XN=’,F6.3/2X,

* ’КОНЕЦ ОТРЕЗКА XK=’,F6.3/2X,

* ‘ДОПУСКАЕМАЯ ПОГРЕШНОСТЬ EPS=’,F8.6)

WRITE(I,3)

3 FORMAT(//2X,14(‘-‘),’РЕЗУЛЬТАТЫ РАСЧЕТА’,14(‘-‘))

WRITE(I,4)X,C,K

4 FORMAT(/2X,’ИСКОМЫЙ КОРЕНЬ ‘,6X,’X=’,F10.6/

*2X,’ЗНАЧЕНИЕ ФУНКЦИИ’,3X,’F(X)=’,F10.6/

*2X,’КОЛИЧЕСТВО ИТЕРАЦИЙ K=’,I3)

WRITE(I,5)

5 FORMAT(40('='))

20 CONTINUE

END

Примечание. Автоматически созданный файл результатов “FT07F001”

РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ

РЕШАЕМОЕ УРАВНЕНИЕ COS(2*X)-0.25= 0

------------ ИСХОДНЫЕ ДАННЫЕ---------------

НАЧАЛО ОТРЕЗКА XN= -2.500

КОНЕЦ ОТРЕЗКА XK= -2.000

ДОПУСКАЕМАЯ ПОГРЕШНОСТЬ EPS= 0.000100

-----------РЕЗУЛЬТАТЫ РАСЧЕТА--------------

ИСКОМЫЙ КОРЕНЬ X= -2.482537

ЗНАЧЕНИЕ ФУНКЦИИ F(X)= 0.000005

КОЛИЧЕСТВО ИТЕРАЦИЙ K= 12.

======================================

Примечание. Текст подпрограммы OTKOR приведен в приложении 1.

ПРИМЕР РЕШЕНИЯ УРАВНЕНИЯ МЕТОДОМ ХОРД

ПРИЛОЖЕНИЕ 3

PROGRAM RESH

* Главная программа

DO 5 N=6,7

WRITE(N,1)

1 FORMAT(//15X,'РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ'/

*15X,МЕТОДОМ ХОРД')

WRITE(N,2)

2 FORMAT(15X,'РЕШАЕМОЕ УРАВНЕНИЕ Y=COS(2*X)-0.25')

5 CONTINUE

CALL OTKOR(N,X1,X2)

IF(N.GT.100) GO TO 10

CALL KHORD (X1,X2,EPS,X,K)

CALL IDRES(X1,X2,EPS,X,K)

10 STOP

END

SUBROUTINE KHORD(A,B,EPS,X,K)

* РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

* МЕТОДОМ ХОРД

PRINT*,'ВВЕДИТЕ ДОПУСКАЕМУЮ ПОГРЕШНОСТЬ EPS'

READ(5,*)EPS

K=0

X1=A

X2=B

1 P=F(X1)

2 Q=F(X2)

X=X1-(X2-X1)*P/(Q-P)

K=K+1

C=F(X)

IF (ABS (C).LE.EPS) GO TO 5

IF (ABS (X2-X1).LE.2*EPS) GO TO 4

IF (C*Q.LT.0.) GO TO 3

X2=X

GO TO 2

3 X1=X

GO TO 1

4 X=(X1+X2)*0.5

5 RETURN

END

Результаты вычислений в файле “FT07F001”

РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ МЕТОДОМ ХОРД

РЕШАЕМОЕ УРАВНЕНИЕ Y = COS(2*X)-0.25

-------------- ИСХОДНЫЕ ДАННЫЕ------------------

НАЧАЛО ОТРЕЗКА XN= -2.500

КОНЕЦ ОТРЕЗКА XK= -2.000

ДОПУСКАЕМАЯ ПОГРЕШНОСТЬ EPS= 0.000100

--------------РЕЗУЛЬТАТЫ РАСЧЕТА-----------------

ИСКОМЫЙ КОРЕНЬ X= -2.482525

ЗНАЧЕНИЕ ФУНКЦИИ F(X)= 0.00005

КОЛИЧЕСТВО ИТЕРАЦИЙ K= 2.

======================================

ПРИМЕР РЕШЕНИЯ УРАВНЕНИЯ МЕТОДОМ НЬЮТОНА

ПРИЛОЖЕНИЕ 4

PROGRAM RESH

* Главная программа

DO 5 N=6,7

WRITE(N,1)

1 FORMAT(//15X,’РЕШЕНИЕ НЕЛИНЕЙНЫХ

*УРАВНЕНИЙ ’/

*15X,’МЕТОДОМ ПРОСТЫХ ИТЕРАЦИЙ’)

WRITE (N,2)

2 FORMAT (15X,’РЕШАЕМОЕ УРАВНЕНИЕ

*X-COS(X)-0.25=0 ‘ )

5 CONTINUE

CALL OTKOR (N,X1,X2)

IF(N.GT.100) GO TO 10

CALL NEWTO (X1,X2,EPS,X,K)

CALL IDRES(X1,X2,EPS,X,K)

10 STOP

END

SUBROUTINE NEWTO (A,B,EPS,X,K)

* РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

* МЕТОДОМ НЬЮТОНA

PRINT*,'ВВЕДИТЕ ДОПУСКАЕМУЮ ПОГРЕШНОСТЬ EPS'

READ(5,*) EPS

K=0

X0=A

IF (ABS(F1(B)).GT.ABS(F1(A))) X0=B

C=F(X0)

1 X=X0-C/F1(X0)

K=K+1

C=F(X)

IF (ABS(C).LE.EPS) GO TO 5

IF (ABS(X0-X).LE.2*EPS) GO TO 5

X0=X

GO TO 1

5 RETURN

END

FUNCTION F(X)

* Решаемое уравнение

F=COS(2*X)-.25

END

FUNCTION F1(X)

* Производная от решаемого уравнения

F1=-2.*SIN(2*X)

END

Примечания. 1. Все подпрограммы, вызываемые главной программой, должны быть записаны в одном файле с главной программой.

2. Текст подпрограммы OTKOR приведен в приложении 1,

подпрограммы IDRES – в приложении 2.

ПРИМЕР РЕШЕНИЯ УРАВНЕНИЯ МЕТОДОМ ПРОСТЫХ ИТЕРАЦИЙ

ПРИЛОЖЕНИЕ 5

PROGRAM RESH

* Главная программа

DO 5 N=6,7

WRITE(N,1)

1 FORMAT(//15X,'РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ'/

*15X,'МЕТОДОМ НЬЮТОНA')

WRITE(N,2)

2 FORMAT(15X,'РЕШАЕМОЕ УРАВНЕНИЕ Y=COS(2*X)-0.25')

5 CONTINUE

CALL OTKOR(N,X1,X2)

IF(N.GT.100) GO TO 10

CALL NEWTO (X1,X2,EPS,X,K)

CALL IDRES(X1,X2,EPS,X,K)

10 STOP

END

SUBROUTINE PRITE (A,B,EPS,X,K)

* РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

* МЕТОДОМ ПРОСТЫХ ИТЕРАЦИЙ

F1=ABS (FJ1 (A))

IF (F1.GE.1.) GO TO 2

F2=ABS (FJ1 (B))

IF (F2.GE.1.) GO TO 4

PRINT*, ‘ВВЕДИТЕ ДОПУСКАЕМУЮ

*ПОГРЕШНОСТЬ EPS ’

READ (5,*) EPS

K= 0

X0 = (A+B)* 0.5

1 X = FJ (X0)

K= K+1

IF ( ABS (F(X)).LE. EPS) GO TO 5

IF ( ABS (X-X0).LE. EPS) GO TO 5

X0 = X

GO TO 1

2 PRINT 3, F1

3 FORMAT (3X,’ЕСЛИ ПЕРВАЯ ПРОИЗВОДНАЯ

*ЭКВИВАЛЕНТНОГО УРАВНЕНИЯ’,

*’FJ1=’,F8.2,’ >1’/ 3X,’ТО МЕТОД ПРОСТЫХ

*ИТЕРАЦИЙ, К РЕШЕНИЮ ДАННОГО

*УРАВНЕНИЯ, НЕПРЕМЕНИМ’)

GO TO 5

4 PRINT 3,F2

5 RETURN

END

FUNCTION F(X)

* Решаемое уравнение

F=X-COS(X)-.25

END

FUNCTION FJ(X)

* Эквивалентное уравнение

FJ=COS(X)+0.25

END

FUNCTION FJ1(X)

* Производная эквивалентного уравнения

FJ1= -SIN(X)

END

Примечания. 1. Все подпрограммы, вызываемые главной программой, должны быть записаны в одном файле с главной программой.

2. Текст подпрограммы OTKOR приведен в приложении 1,

подпрограммы IDRES – в приложении 2.

Выбрать из таблицы уравнение для решения

ПРИЛОЖЕНИЕ 6

Для лабораторных работ №1,2,3,4,5 трансцендентные уравнения выбираются из таблицы 1, а алгебраические - из таблицы 2, соот-ветствующие № в списке журнала посещаемости группы.

Таблица 1

№ п.п

Уравнение

№ п.п

Уравнение

1.

x - sinx = 0,25

14.

x + ln(x +0,5) – 0,5 = 0

2.

tg (0,58x + 0,1 ) = x2

15.

x2 – sin 5x = 0,3

3.

√x – cos (0,387x ) = 0

16.

1/x = sinx

4.

lgx – 7 / (2x + 6 ) = 0

17.

x – sinx = 0,25

5.

tg (0,5x + 0,2 ) = x

18.

cos (x +0,3 ) = x2

6.

( x – 3 ) ∙ cosx = 1

19.

5sinx = x - 1

7.

(x – 1 )∙lg (x + 11 )= 1

20.

xlgx + (x + 1 ) = 1

8.

x2 cos2x = - 1

21.

tgx + x = 1

9.

ctgx – x / 5 = 0

22.

xlgx – 1,2 = 0

10.

2lg ( – x / 2 ) + 1 = 0

23.

2x + lgx – 7 =0

11.

x2 + 4sinx = 0,2

24.

tg (0,44x + 0,3 ) = x2

12.

ctg0,5x – x2 = 0

25.

x2 – sin x = 0,1

13.

tg0,63x – 0,92x = 0,5

26.

x + cos x =1

(повторить п. 2.2 данной методички)

Произвести отделение корней для уравнения вида f(x)=ax3+bx2+cx+d

по формуле: C=1+ Amax/An

где: С= начало отрезка, т.е. Х0 ;

An= коэффициент при X с наибольшим показателем степени;

Amax = наибольший коэффициент в уравнении - в, с, или d;

(значения коэффициентов указаны в строке каждого из вариантов в таблице 2).

Таблица 2

Вариант

a

b

c

d

1

0,890

-2,813

-3,69

11,20

2

0,107

-0,461

-2,37

5,44

3

1,276

-3,60

-1,37

6,76

4

0,170

-0,569

-1,60

3,73

5

1,039

-3,145

-1,94

8,00

6

4,684

-14,04

-2,45

23,50

7

2,11

-6,44

-3,19

15,13

8

3,94

-11,79

-1,56

18,67

9

1,20

-3,53

-1,36

7,11

10

1,00

-3,00

-24,0

10,0

11

2,00

-5,00

8,00

-7,00

12

3,00

-5,50

7,5

-8,0

13

4,00

-6,00

7,00

-9,0

14

5,00

-6,50

6,50

-10,0

15

6,00

-7,00

6,00

-11,0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]