Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchot po kusovoy.doc
Скачиваний:
32
Добавлен:
26.11.2019
Размер:
499.2 Кб
Скачать

2.4.4.1 Общие характеристики.

1) Наименование подпрограммы

Линейная интерполяция

2) Назначение модуля

модуль предназначен для вычисления текущего значения аргумента при заданном значении функции

3) Язык программирования

Фортран Compaq Visual Fortran

4) Тип и версия операционной системы

Microsoft Windows XP

Home Edition

Версия 2002

Service Pack 2

2.4.4.2 Описание модуля.

модуль предназначен для вычисления текущего значения аргумента при заданном значении функции

2.4.4.3 Реализация программного модуля.

Алгоритм.

См. раздел 2.2.4

Блок - схема.

см. Приложение №1

Таблица идентификаторов.

Идентиф.

Тип 28перем.

Инженерное обознач.

Значение

Размерность

Содержательное наименование

y

Real

Массив значений функции

x

Real

Массив значений аргумнета

yk

Real

Текущее значение функции

xk

Real

Текущее значение аргумента

m

Real

нет

Количество узловых точек

Листинг.

subroutine inter(y,x,xk,yk,m)

real, dimension(m)::y,x

do j=2,m-1

if(yk<=y(j))then

i=j-1

xk= x(i)+((x(i+1)-x(i))/(y(i+1)-y(i)))*(yk-y(i))

exit

elseif (yk>y(m))then

xk= x(m-1)+((x(m)-x(m-1))/(y(m)-y(m-1)))*(yk-y(m-1))

end if

end do

end subroutine

Обращение к подпрограмме.

call inter(Cy,Cx,Cxz,Cyz,5)

Тестирование подпрограммы.

Program interpol

integer,parameter::n=4

real,Dimension(n)::x,y

do xk=0,5,0.5

x(1)=1

x(2)=2

x(3)=3

x(4)=4

y(1)=1

y(2)=1

y(3)=2

y(4)=2

Call inter(y,x,xk,yk,n)

Print*,xk, yk

End do

End program

subroutine inter(y,x,xk,yk,m)

real, dimension(m)::y,x

do j=2,m-1

if(yk<=y(j))then

i=j-1

xk= x(i)+((x(i+1)-x(i))/(y(i+1)-y(i)))*(yk-y(i))

exit

elseif (yk>y(m))then

xk= x(m-1)+((x(m)-x(m-1))/(y(m)-y(m-1)))*(yk-y(m-1))

end if

end do

end subroutine

Результат:

0.0000000E+00 1.000000

0.5000000 1.000000

1.000000 1.000000

1.500000 1.000000

2.000000 1.000000

2.500000 1.500000

3.000000 2.000000

3.500000 2.000000

4.000000 2.000000

4.500000 2.000000

5.000000 2.000000

Press any key to continue

2.4.5 Описание подпрограммы «Cyt».

Алгоритм.

Подпрограмма считает текущее значение по формуле, заданной в условии

Блок - схема.

см. приложение № 1

Таблица идентификаторов.

Идентиф.

Тип 31перем.

Инженерное обознач.

Значение

Размерность

Содержательное наименование

Cyt

Real

Текущее значение коэффициента подъемной силы

V

Real

V

250

м/с

Скорость полёта

S

Real

S

40

Площадь крыла

G

Real

Н

Вес самолета

Gk

Real

120000

Н

Начальный вес самолета

Ro

Real.

0,705

кг/м3

плотность воздуха на высоте полета

Листинг.

function Cyt(G)

use source_data

G=Gk

Cyt=2*G/(ro*V**2*S)

print*,'Cyz=',Cyt

end function

Тестирование программы.

Контрольная точка: Cyt=0.0794 (Калькулятор)

Cyz= 7.9432629E-02 (ЭВМ)

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