Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР-14. Метод половинного деления (FORTRAN,Excel...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.22 Mб
Скачать

Метод половинного деления (Контрольные вопросы – правильные варианты)

КАТЕГОРИЯ 1. Фрагмент программы для приближенного расчета корня уравнения F(x)=0 (функция задана в другом месте программы) методом половинного деления на интервале [a,b] с заданной точностью eps.

implicit none ! обязательное оъявление имен

real F ! заданная функция

real C, & ! середина интервала изоляции корня

L, & ! левая текущая граница интервала изоляции корня

R ! правая текущая граница интервала изоляции корня

real a,b ! начальные левая и правая границы интервала

real kor ! корень уравнения

real eps ! заданная точность

... ! ввод начальных данных a,b,eps

! расчет корня методом половинного деления

L=a ! начальное значение левой текущей границы интервала

R=b ! начальное значение правой текущей границы интервала

do while(abs(R-L)>eps) ! проверка на завершение поиска корня

C=(R+L)/2 ! расчет середины интервала

if(F(L)*F(C)>=0)then ! проверка знака функции в С

L=C ! смещение левой границы интервала в С

else

R=C ! смещение правой границы интервала в С

endif

enddo ! конец тела цикла

kor=(R+L)/2 ! приближенное значение корня

КАТЕГОРИЯ 2. Модуль для объявления и инициализации глобальных переменных.

Объявление и инициализация глобальных переменных вещественного типа первой точности (a=-2.0, b=-1.0, eps=1e-5, kor) для поиска корня и сответствующих текстовых переменных длиной 12 символов (text_a, text_b, text_eps, text_kor) для обмена данных с окнами диалоговой панели.

Вариант 1

module Lab14

implicit none

real::a=-2.0 ! левая граница интервала изоляции корня

real::b=-1.0 ! правая граница интервала изоляции корня

real::eps=1e-5 ! точность вычислений

real::kor ! искомый корень уравнения

character(12)::text_a='',text_b=''

character(12)::text_eps=''

character(12)::text_kor=''

end module Lab14

Вариант 2

module Lab14

real(4):: &

a=-2.0, & ! левая граница интервала изоляции корня

b=-1.0, & ! правая граница интервала изоляции корня

eps=1e-5, & ! точность вычислений

kor; ! искомый корень уравнения

character(12):: &

text_a='', &

text_b='', &

text_eps='', &

text_kor='';

contains

end module

Вариант 3

module Lab14

real*4 &

a, & ! левая граница интервала изоляции корня

b, & ! правая граница интервала изоляции корня

eps, & ! точность вычислений

kor; ! искомый корень уравнения

data a,b,eps/-2.0,-1.0,1e-5/ ! инициализация

character*12 text_a, text_b, text_eps, text_kor;

data text_a,text_b,text_eps,text_kor/4*””/ ! инициализация

end

Вариант 4

module Lab14

real a/-2.0/, b/-1.0/, eps/1e-5/, kor; ! инициализация

character &

text_a*12/""/, text_b*12/""/, text_eps*12/""/, text_kor*12/""/;

end module

КАТЕГОРИЯ 3. Реализация заданной функции.

Функция .

Вариант 1

! заданная функция для поиска корня

real function F(x) ! заголовок функции

implicit none ! обязательное обявление имен

real x ! значение аргумента

F=x**3-2.8*x**2-6.2*x+3.7 ! значение функции-результат

end function F ! конец функции

Вариант 2

! заданная функция для поиска корня

function F(x) ! заголовок функции

implicit none ! обязательное обявление имен

real x ! объявление аргумента

real F ! объявление имени функции

F=x**3-2.8*x**2-6.2*x+3.7 ! значение функции-результат

end function ! конец функции

Вариант 3

! заданная функция для поиска корня

function F(x) ! заголовок функции

F=x**3-2.8*x**2-6.2*x+3.7 ! значение функции-результат

end ! конец функции

Вариант 4

! заданная функция для поиска корня

real function F(x) ! заголовок функции

implicit none ! обязательное обявление имен

real x ! объявление аргумента

F=x**3-2.8*x**2-6.2*x+3.7 ! значение функции-результат

end ! конец функции

29