Основы современных компьютерных технологий

         

Пары и комплексные числа


Пара представляет собой два арифметических выражения, разделенные запятой и заключенные в круглые скобки:

(>,< АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ2>)

Пара выражений вида (а,Ь) используется для представления:

  • прямоугольных или полярных координат точки на плоскости;
  • комплексных чисел;
  • связанных по некоторой причине выражений а и b.
  • Тип представления определяется контекстом правила или оператора, в котором эта пара используется. Пара выражений может использоваться для получения значений переменных в функциях с двумя выходными параметрами. Например, при выполнении правила (q,r) = divide(11,3) вычисленные функцией DIVIDE() частное и остаток от деления числа 11 на число 3 присваиваются переменным пары, т.е. будет получено q=3 и r=2.

    Примеры использования пар:

  • = (a*cosd(t),b*sind(t))
  • (abserr.relerr) = (а2-a1 ,(a2- a1 )/a1)
  • Последние два выражения эквиваленты четырем выражениям без использования пар:

  • x = a*cosd(t)
  • y = b*sind(t)
  • abserr = a2-a1
  • relerr = (a2-a1)/a1
  • Пары могут использоваться как в уравнениях при описании вычислительных моделей, так и в операторах процедур-функций. При использовании пар в уравнениях необходимо учитывать возможные конфликты при попытке перевычисления известных значений переменных модели. Пример такой ситуации:



    (а,b) = (b,а).

    В процедуре-функции данное выражение описывает оператор, который осуществляет переприсваиваивание значений переменных а и b. В уравнении такое недопустимо.

    353

    Пары также нельзя использовать в качестве операндов логических выражений. Например, следующие условные выражения приводят к ошибкам:

    if (a,b) = (1,0) then return

    if (u,v) <> (0,0) then z = 1/sqrt(u*v).

    Правильная их запись имеет вид:

    if and(a=1 ,b=0) then return

    if and(u<>0,v<>0) then z = 1/sqrt(u*v).

    В качестве примера использования пары для представления координат точки на плоскости приведем описание параметрической формы задания эллипса:

    (x,y) = (a*cosd(t),b*sind(t)),

    где а и b суть константы, задающие полуоси эллипса, t - угол в градусах.
    Исходное описание комплексных чисел, используемое в ТК Solver, имеет вид:

    х + iy, гдеi^2 = -1.

    Числа х и у называются вещественной и мнимой частями комплексного числа соответственно. Представляются комплексные числа в виде пары: (х,у). Над комплексными числами можно выполнять соответствующие арифметические операции: +, -, *, и /. Например: (a,b) = (c,d)*(e,f) эквивалентно двум операторам: а = c*e-d*f и b = c*f+d*e.

    Комплексные числа и операции над ними можно использовать в уравнениях. При этом при решении уравнений для нахождения неизвестных переменных обратные операции будут выполняться также по законам комплексной арифметики. Например, если заданы a, b, e и f, в предыдущем примере будет выполнено вычисление (a,b)/(e,f) для нахождения неизвестных значений end. Смешивать комплексные типы чисел с другими типами в ТК Solver не допускается. Так, запись вида: (у1 ,у2) = 2*(z1 ,z2) должна быть представлена в форме: (у1 ,у2) = (2,0) * (z1 ,z2).

    Комплексные пары в ТК Solver разрешено использовать в качестве аргументов в следующих функциях: POWER((x,y), n) возводит комплексное число (х,у) в степень п, где п -вещественное число, необязательно целое; RE((a,b)) возвращает действительную часть а комплексной пары; IM((c,d)) возвращает мнимую часть d комплексной пары.

    Точка z на комплексной плоскости может быть представлена либо в виде прямоугольных координат (х,у), либо в виде полярных координат (r.theta). Последняя запись в ТК Solver есть представление полярной координаты, а не представление комплексного числа в полярной форме. Полное выражение для точки z как комплексного числа в полярной форме имеет вид r(cos theta + i sin theta).

    354

    Контрольные вопросы и задания

  • Укажите отличия парадигм обычных программ и систем искусственного интеллекта.


  • Перечислите модели представления знаний, их достоинства и недостатки.


  • Охарактеризуйте типы рассуждений.


  • Сформулируйте правило Modus Ponens и укажите его назначение.


  • В чем суть метода резолюций?


  • Перечислите состав и назначение разделов Пролог-программы.




  • Назовите основные стандартные предикаты Турбо-Пролога.


  • Поясните механизм использования предикатов fail и ! для управления вычислениями.


  • Укажите способы организации рекурсии.


  • Дайте определение списка и поясните основной механизм обработки списков.


  • Укажите состав и структуру системы синтеза программ.


  • Дайте определение и укажите форму задания вычислительной задачи.


  • Охарактеризуйте решатель задач ТК Solver, назовите состав панелей.


  • Назовите разновидности функций и укажите технологию описания функций пользователя.


  • Составить Пролог-программу объединения двух списков.


  • Составить Пролог-программу сортировки элементов списка в порядке убывания.


  • Составить рекурсивную программу вычисления S = Хn+1/(п+1 )!, n=0, 1,2...


  • Выполнить в системе ТК Solver решение следующих систем уравнений:


  • а) { X*Y=sin(X) + 1;
    Y=cos(X)+2
    б) { X*Y=sin(X)+1
    Y-3=cos(X).
    19. Разработать ВМ для расчета параметров пассивных и активных электрических цепей, включающих сопротивления, индуктивности, емкости и источники тока.

    355

    Литература

  • Агафонов В. PL, Борщев В.Б., Воронков А.А. Логическое программирование в широком смысле (обзор). В кн. Логическое программирование: Пер. с англ, и фр.- М.:Мир,1988.-368с.


  • Вольфенгаген В.Э., Яцук В.Я. и др. Методические указания к проведению практических занятий по курсу "Основы разработки специализированных машин" (реализация в среде аппликативной логики). - М: МИФИ,1990. - 60 с.


  • Ин Ц., Соломон Д. Использование Турбо-Пролога: Пер. с англ. - М.: Мир, 1993. - 606 с.


  • Искусственный интеллект: В 3-х кн. Кн. 2. Модели и методы: Справочник/Под ред. Д.А. Поспелова. - М.: Радио и связь, 1990. - 304 с.


  • Искусственный интеллект: В 3-х кн. Кн. 3. Программные и аппаратные средства: Справочник/Под ред. В.Н. Захарова, В.Ф. Хорошевского. - М.: Радио и связь, 1990. - 368 с.


  • Искусственный интеллект - основа новой информационной технологии/Поспелов Г.С. - М.: Наука, 1988. - 280 с.


  • Компанией, Р.И., Ломако А. Г. Программирование и исчисление вычислительных задач.Инф. бюллетень № 89. - СПб.: ВИККА, 1996. - 29 с.


  • Котпенко И.В. Логическое программирование на Прологе. TURBO и PDC PROLOG. Учебное пособие. - СПб.: ВАС, 1993.- 412 с.


  • Лорьер Ж.-Л. Системы искусственного интеллекта: Пер. с фр. - М.: Мир, 1991. - 568с.


  • Ю.Марселлус Д. Программирование экспертных систем на Турбо-Прологе.: Пер. с англ. - М.: Финансы и статистика, 1994. - 256 с.


  • Осу га С. Обработка знаний: Пер. с яп. - М.: Мир, 1989. - 293 с.


  • Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог: Пер.с англ.- М.: Мир, 1990. - 235 с.


  • Тыугу Э.X. Концептуальное программирование. - М.:Наука,1984. - 256 с.


  • Фагпиев II. И. Логика: Учебное пособие. - СПб.: СПбГУП, 1994. - 118 с.


  • 356

    353 :: 354 :: 355 :: 356 :: Содержание


    Содержание раздела