Метод итераций (Контрольные вопросы – правильные варианты)
КАТЕГОРИЯ 1. Фрагмент программы для приближенного расчета корня уравнения F(x)=0 (функция задана в другом месте программы) методом итераций на интервале [a,b] с заданной точностью eps и коэффициентом lamb.
implicit none ! обязательное обявление имен
real & ! локальные переменные, необходимые для расчета корня
Xnew, & ! новое значение Х
Xold ! значение Х на предыдущей итерации
real a,b ! начальные левая и правая границы интервала
real lamb ! итерационный коэффициент
real eps ! заданная точность
real kor ! корень уравнения
real F ! заданная функция
... ! ввод начальных данных a,b,eps,lamb
Xnew=(a+b)/2 ! начальное значение Х
do
Xold=Xnew ! переназначение Х для следующей итерации
Xnew= Xold - lamb*F(Xold) ! новая итерация по Х
if(abs(Xnew - Xold)<eps)exit ! проверка на завершение поиска
enddo
kor=( Xnew + Xold)/2 ! приближенное значение корня
КАТЕГОРИЯ 2. Модуль для объявления и инициализации глобальных переменных.
Объявление и инициализация глобальных переменных вещественного типа первой точности (a=-2.0, b=-1.0, eps=1e-5, lamb=0.1, kor) для поиска корня и сответствующих текстовых переменных длиной 12 символов (text_a, text_b, text_eps,text_lamb, text_kor) для обмена данных с окнами диалоговой панели.
Вариант 1
module Lab14
implicit none
real::a=-2.0 ! левая граница интервала изоляции корня
real::b=-1.0 ! правая граница интервала изоляции корня
real::eps=1e-5 ! точность вычислений
real::lamb=0.1 ! итерационный коэффициент
real::kor ! искомый корень уравнения
character(12)::text_a='',text_b='', text_lamb=''
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, & ! точность вычислений
lamb=0.1, & ! итерационный коэффициент
kor; ! искомый корень уравнения
character(12):: &
text_a='', &
text_b='', &
text_eps='', &
text_lamb='', &
text_kor='';
contains
end module
Вариант 3
module Lab14
real*4 &
a, & ! левая граница интервала изоляции корня
b, & ! правая граница интервала изоляции корня
eps, & ! точность вычислений
lamb, & ! итерационный коэффициент
kor; ! искомый корень уравнения
data a,b,eps,lamb/-2.0,-1.0,1e-5,0.1/ ! инициализация
character*12 text_a,text_b,text_eps,text_lamb,text_kor;
data text_a,text_b,text_eps,text_lamb,text_kor/5*""/ ! инициализация
end
Вариант 4
module Lab14
real a/-2.0/,b/-1.0/,eps/1e-5/,lamb/0.1/,kor; ! инициализация
character text_a*12/""/,text_b*12/""/,text_eps*12/""/, &
text_lamb*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 ! конец функции
