≪
≫

Модуль CI_ARI

Комплексная интервальная арифметика

В этом модуле предусмотрены все операции, функции и процедуры, необходимые для вычислений с комплексными интервалами.

Тип

Тип cinterval, определенный как

type cinterval = record re, im : interval end;

является частью языкового ядра PASCAL -XSC. Он основан на обычном представлении комплексного интервала z в форме

z = [^inf? ^sup] + «• [з/infA Z/sup],

что соответствует прямоугольнику на комплексной плоскости (прямоугольному интервалу).

Операции

Все предопределенные арифметические операции этого модуля выдают результат типа cinterval. Предусмотрены унарные операции +, — и четыре основные бинарные операции * и /, каждая с округлением до

наименьшего включающего комплексного интервала. Операции отношения =, О, <, <—, > и >= интерпретируются как соответствующие операции для множеств. Они обозначают следующие отношения:

равно;

не равно;

строгое подмножество слева;

подмножество слева;

строгое подмножество справа; подмножество справа.

Эти операции определяются на основе операций = и <= в соответствии с (RD) (см. стр. 142). Если у и w принадлежат к типу cinterval, то

v <= w (v.re <= w.re) and (v.im <= w.im), где операции в правой части равенства являются интервальными.

Кроме того, в этом модуле определена операция in для отношений «содержится в» и «содержится внутри». Для двух комплексных интервалов v и w операция in удовлетворяет соотношению

Левый операнд

Правый операнд

integer real

complex

interval

cinterval

унарные

+, —

integer real

+*

о

in, =, О +*

complex

+*

+*

о

in, =, <>

+*

о in, =, О +*

interval

о

+*

О

in, V, >< 4-*, **

cinterval

о

+*

о

+*

о

V, ><

+*, **

о

in, V, >< +*, **

Операции модуля CI_ARI о е { + , *, /},

ve{=, о, <, < = , >, > = } v in w 4=> (v.re in w.re) and (v.im in w.im).

Операция >< проверяет комплексные интервалы на пустоту пересечения. Два комплексных интервала v, w не пересекаются, если v П w = 0. Операции +* and ** обозначают вычисление комплексной интервальной оболочки и пересечение комплексных интервалов соответственно. Результатом действия операции +* является наименьший интервал, включающий оба операнда, а операции ** — пересечение интервалов. Если пересечение равно пустому множеству, фиксируется ошибка.

Пример 3.3.1.

Если переменная са, принадлежащая к типу cinterval, равна [ — 1,3] 4-

4- i [3,4], то операции +, — и * возвращают следующие результаты:

Выражение

са

+

са

са

—

са

са

*

са

Результат

[-2,6] 4- i [6,8]

[-4,4] 4- i [-1,1] [-19,0] 4- г [-8,24]

Функции преобразования

Следующие функции используются для преобразования между типами real, complex, interval и cinterval:

Функция

Тип результата

Значение

compl (il,i2)

cinterval

Комплексный интервал с вещественной частью П и мнимой частью i2

compl (r,i)

cinterval

Комплексный интервал с вещественной частью г и мнимой частью i

compl (i,r)

cinterval

Комплексный интервал с вещественной частью 1 и мнимой частью г

compl (i)

cinterval

Комплексный интервал с вещественной частью i и мнимой частью, равной 0

intval (cl,c2)

cinterval

Комплексный интервал с вещественной частью [cl.re, с2.ге] и мнимой частью [cl.im, c2.ini]

intval (r,c)

cinterval

Комплексный интервал с вещественной частью [г, с.ге] и мнимой частью [0,c.im]<**)

intval (c,r)

cinterval

Комплексный интервал с вещественной частью [с.ге, г] и мнимой частью

Функция

Тип результата

Значение

intval (с)

cinterval

Комплексный интервал с вещественной частью [с.ге, с.ге] и мнимой частью [c.im, c.im]

re (ci)

interval

Вещественная часть ci

im (ci)

interval

Мнимая часть ci

inf (ci)

complex

Комплексная нижняя граница z величины ci, где z = (ci.re.inf ci.im.inf)

sup (ci)

complex

Комплексная верхняя граница г величины ci, где z = (ci.re.sup, ci.im.sup)

г — выражение типа real, i, il, i2 — выражения типа interval, с, cl, с2 — выражения типа complex, ci — выражение типа cinterval : предполагается, что cl <= с2, иначе фиксируется ошибка.

  • (**) : предполагается, что г <— с, иначе фиксируется ошибка.
  • (***) : предполагается, что с <= г, иначе фиксируется ошибка.

Совмещение операции присваивания

Преобразование типов real, complex или interval к типу cinterval можно осуществить с помощью совмещенной операции присваивания:

Оператор

Значение

ci := г

ci := compl (intval (г))

ci := с

ci := intval (c)

ci := i

ci := compl (i)

ci — переменная типа cinterval, i — выражение типа interval, с — выражение типа complex, г — выражение типа real

Предопределенные функции

Все математические функции PASCAL-XSC, применяемые для вещественных аргументов, могут использоваться с комплексными интервальными аргументами ci. Эти комплексные интервальные функции F удовлетворяют соотношению F(ci) D f(ci) = {f(c) : с Е ci}. Кроме того, предусмотрены функции для вычисления угловой компоненты тригонометрического представления, для вычисления сопряженного числа и для вычисления средней точки, диаметра и эпсилон-расширения комплексного интервала.

Функция

Тип результата

Значение

sqr (ci)

cinterval

(ci)2

Квадрат

sqrt (ci)

cinterval

y/ci

Квадратный корень

exp (ci)

cinterval

есл

Экспоненциальная функция

exp2 (ci)

cinterval

2ci

Показательная функция с основанием 2

Функция

Тип результата

Значение

exp 10 (ci)

cinterval

10ci

Показательная функция с основанием 10

In (ci)

cinterval

In (ci)

Натуральный логарифм

log2 (ci)

cinterval

log2 (ci)

Логарифм по основанию 2

log 10 (ci)

cinterval

ig(ci)

Логарифм по основанию 10

sin (ci)

cinterval

sin (ci)

Синус

cos (ci)

cinterval

cos (ci)

Косинус

tan (ci)

cinterval

tg(ci)

Тангенс

cot (ci)

cinterval

ctg(ci)

Котангенс

arcsin (ci)

cinterval

arcsin (ci)

Арксинус

arccos (ci)

cinterval

arccos(ci)

Арккосинус

arctan (ci)

cinterval

arctg (ci)

Арктангенс

arccot (ci)

cinterval

arcctg(ci)

Арккотангенс

sinh (ci)

cinterval

sh( ci)

Гиперболический синус

cosh (ci)

cinterval

ch (ci)

Гиперболический косинус

tanh (ci)

cinterval

th (ci)

Гиперболический тангенс

coth (ci)

cinterval

cth (ci)

Гиперболический котангенс

arsinh (ci)

cinterval

arsh( ci)

Обратный гиперболический синус

arcosh (ci)

cinterval

arch (ci)

Обратный гиперболический косинус

artanh (ci)

cinterval

arth( ci)

Обратный гиперболический тангенс

arcoth (ci)

cinterval

arcth (ci)

Обратный гиперболический котангенс

conj (ci)

cinterval

ci = а — ib

Число, сопряженное числу ci = а + ib

abs (ci)

interval

j =

=/ci.re2 + ci.im

Абсолютное значение ci 2

arg (ci)

interval

Угловая компонента тригонометрического представления ci

mid (ci)

complex

m

Средняя точка ci

diam (ci)

real

d

Длина ci

blow (ci,r)

cinterval

t

Эпсилон-расширение

ci — выражение типа cinterval, г — выражение типа real | : blow := compl (blow(ci.re,r), blow(ci.im,r));

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

Пример 3.3.2.

Если переменная а типа cinterval определена как а := compl ( intval ( — 1,3), intval (3,4) );

то результатами функций abs и sqr будут следующие значения:

Выражение abs (а) sqr (а)

Результат

[-16,0] + i [-8,24]

Процедуры ввода-вывода

В этом модуле предусмотрены процедуры

procedure read (var f: text; var a: cinterval); procedure write (var f: text; a: cinterval);

с необязательным параметром-файлом и произвольным количеством параметров ввода-вывода, но без спецификаций формата.

Комплексный интервал ci = [ж, у] + i[v, w] должен вводиться в форме

(комплексный интервал в

общей форме),

либо в одной из

следующих форм:

(ж, [v,w]),

где х = у,

([ж, 3/], v).

где v — w,

[я,?/].

где v = w = 0,

(ж, п),

где х = у и v = w,

X,

где х = у и v = w = 0.

Округление вещественной и мнимой компонент выполняется так, как описано в разд. 3.2.

При выводе комплексного интервала производится интервальное округление, описанное в разд. 3.2 для вещественной и мнимой компонент. Результат представляется в форме

([rr,t/],[v,w])

с форматом для real-значений х, у, v и w, принятым по умолчанию (он зависит от реализации).

Пример 3.3.3.

Если cil, ci2 и ci3 принадлежат типу cinterval, то операторы

read (cil, ci2, ci3);

writein (cil);

writein (ci2);

writein (ci3);

вводят данные

[4,5]

  • (8,10)
  • 100

и выводят комплексные интервалы

  • ([ 4.0Е + 00, 5.0Е + 00],[ 0.0Е + 00, 0.0Е + 00])
  • ([ 8.0Е + 00, 8.0Е + 00Ц 1.0Е + 01, 1.0Е + 01])
  • ([ 1.0Е + 02, 1.0Е + 02Ц 0.0Е + 00, 0.0Е + 00])

В зависимости от реализации может использоваться другое предста

вление чисел типа real.

 
Посмотреть оригинал