Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР-16. Метод итераций (FORTRAN,Excel,MathCad).doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

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

КАТЕГОРИЯ 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 ! конец функции

30