Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
02.05.2014
Размер:
553.98 Кб
Скачать

47. Встроенные функции комплексного типа

Встроенные функции комплексного типа в языке ФОРТРАН представлены следующими функциями:

CSINкомплексныйsin

CABSкомплексный модуль

и.т.д

Отличие этих функций от остальных встроенных: аргументом этих функций должна быть величина комплексного типа.

Пример:

COMPLEX A,B,C,D

A=(–1.5, –3.7)

B=A+(4.5,6.3)

C=CSIN(A*B+SQRT(3.))

CMPLXформирует из двух вещественных чисел комплексное число

COMPLEX A,B,C,D,E

F=6.3

B=CMPLX(F,–SIN(2.3)*3)

мнимая часть

REAL(B) – функция выделения действительной части комплексного числа

F1=REAL(B)+1.F1=7.3

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

F2=AIMAG(B)+2. F2=–SIN(2.3)*3+2.

Задача:

Рассчитать токи в электрической цепи:

Преобразуем схему так, чтобы осталось только одно полное эквивалентное

сопротивление цепи Zэкв.

1) 2) 3)

Основные формулы для расчёта этой схемы:

COMPLEX Z2, Z3,Z4, ZS, TOK1, TOK2, TOK3

DIMENSION TOKM(1000)

WRITE (6,*)’Введите ИД

READ (5,*)R1,R2,R3,C,AL,TN,TK,DT,F,UM,

W=2.*3.14*F

XL=W*AL

XC= –1./(W*C)

Z2=CMPLX(R2,XC)

Z3=CMPLX(R3,XL)

Z4=Z3*Z2/(Z2+Z3)

ZS=R1+Z4

I=1

DO 8 T=TN,TK,DT

U=UM*SIN(W*T)

Получим комплексные значения токов:

TOK1=U/ZS

TOK2=TOK1*Z3/(Z2+Z3)

TOK3=TOK1-TOK2

Модуль тока I1

TOKM(I)=SQRT(REAL(TOK1)**2+AIMAG(TOK1)**2)

WRITE (6,*)’При T=’,T,’ ток=’,TOK3

На экран будут выводиться значения: “При Т= ток=( , )

TOKM – массив данных для построения графика, содержит значения модуля тока I1 .

8 I=I+1

CALL GRAF(TOKM,I–1)

PAUSE

STOP

END

48. Оператор equivalence

Записывается в виде:

EQUIVALENCE (A,B)

Этот оператор устанавливает, что один и тот же объект в оперативной памяти ЭВМ может фигурировать под разными именами, то есть осуществляется эквивалентирование памяти.

Примеры:

DIMENSION A(6,5),B(5),E(30)

EQUIVALENCE (A(1,1),B(1))

C=B(2) Или можно было записать: C=A(2,1)

EQUIVALENCE (A(1,1),E(1))

Одномерный массив Е содержит те же данные, что и двухмерный массив А, расположенный по столбцам.

Пример эквивалентирования текстовых переменных:

CHARACTER*20 A,B*5

EQUIVALENCE (A(1:1),B(1:1))

В результате эквивалентирования первые пять символов из переменной А будут соответствовать переменной В.

EQUIVALENCE (A(11:15),B(1:5))

Пять символов с 11 позиции по 15 позицию переменной А будут соответствовать переменной В. Или можно эту строку записать следующим образом: EQUIVALENCE (A(11:11),B(1:1)).

Правило:

Элементы списка, находящиеся в операторе EQUIVALENCE не могут быть в списке формальных параметров и списке оператора COMMON.

Пример эквивалентирования комплексных переменных:

COMPLEX D(5)

DIMENSION E(8)

EQUIVALENCE (D(2),E(1))

Представим графически это эквивалентирование:

Массив D:

d1

d2

d3

d4

d5

д.ч.

м.ч.

д.ч.

м.ч.

д.ч.

м.ч.

д.ч.

м.ч.

д.ч.

м.ч.

Массив Е:

e1

e2

e3

e4

e5

e6

e7

e8

где д.ч. – действительная часть комплексного числа;

м.ч. – мнимая часть комплексного числа.

Из рисунка видно, что элемент e1соответствует действительной части элементаd2, а элементe2соответствует мнимой часть элементаd2и т.д.

Соседние файлы в папке Программирование на Фортране