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

Комбинированный метод (Контрольные вопросы – правильные варианты)

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

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

real buff, & ! буферная переменная

da, & ! изменение границы A (методом хорд)

db; ! изменение границы B (методом касательных)

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

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

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

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

real F1 ! первая производная заданной функции

real F11 ! вторая производная заданной функции

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

if(F(b)*F11(b) < 0)then ! проверка функции на вогнутость/выпуклость

buff=a ! смена местами А и В для выпуклой функции

a=b

b=buff

endif

do while(abs(b-a)>eps) ! проверка на близость к корню границ

da=F(a)*(b-a)/(F(b)-F(a)) ! приближение методом хорд

a=a-da

db=F(b)/F1(b) ! приближение методом касательных

b=b-db

enddo

kor=(a+b)/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 ! конец функции

!****************************************************************************

real function F1(x) ! первая производная заданной функции

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

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

F1=3*x**2-5.6*x-6.2 ! значение первой производной

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

!****************************************************************************

real function F11(x) ! вторая производная заданной функции

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

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

F11=6*x-5.6 ! значение второй производной

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

Вариант 2

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

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

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

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

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

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

!****************************************************************************

function F1(x) ! первая производная заданной функции

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

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

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

F1=3*x**2-5.6*x-6.2 ! значение первой производной

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

!****************************************************************************

function F11(x) ! вторая производная заданной функции

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

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

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

F11=6*x-5.6 ! значение второй производной

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

Вариант 3

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

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

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

!****************************************************************************

function F1(x) ! первая производная заданной функции

F1=3*x**2-5.6*x-6.2 ! значение первой производной

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

!****************************************************************************

function F11(x) ! вторая производная заданной функции

F11=6*x-5.6 ! значение второй производной

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

Вариант 4

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

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

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

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

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

!****************************************************************************

real function F1(x) ! первая производная заданной функции

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

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

F1=3*x**2-5.6*x-6.2 ! значение первой производной

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

!****************************************************************************

real function F11(x) ! вторая производная заданной функции

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

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

F11=6*x-5.6 ! значение второй производной

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

32