Рефетека.ру / Информатика и програм-ие

Курсовая работа: Лисп-реализация математических операций над комплексными числами

Содержание


Введение

1. Постановка задачи

2. Математические и алгоритмические основы решения задачи

2.1 Понятие о комплексных числах

2.2 Действия с комплексными числами

2.2.1 Сложение комплексных чисел

2.2.2 Вычитание комплексных чисел

2.2.3 Произведение комплексных чисел

2.2.4 Деление комплексных чисел

3. Функциональные модели и блок-схемы решения задачи

4 Программная реализация решения задачи

5. Пример выполнения программы

Заключение

Список использованных источников и литературы


Введение


Решение многих задач физики и техники приводит к квадратным уравнениям с отрицательным дискриминантом. Эти уравнения не имеют решения в области действительных чисел. Но решение многих таких задач имеет вполне определенный физический смысл. Значение величин, получающихся в результате решения указанных уравнений, назвали комплексными числами.

Комплексные числа широко использовал отец русской авиации Н.Е.Жуковский (1847 – 1921) при разработке теории крыла, автором которой он является.

Комплексные числа и функции от комплексного переменного находят применение во многих вопросах науки и техники.

Цель настоящей курсовой работы: Лисп-реализация математических операций над комплексными числами.


1. Постановка задачи


Требуется разработать программу, реализующую математические операции над комплексными числами, опираясь на следующие правила выполнения операций:

1). Сложение:


Лисп-реализация математических операций над комплексными числами.


2). Вычитание:


Лисп-реализация математических операций над комплексными числами.


3). Умножение:


Лисп-реализация математических операций над комплексными числами.


4). Деление:


Лисп-реализация математических операций над комплексными числами.


Пример 1.

Выполнить сложение двух комплексных чисел: Лисп-реализация математических операций над комплексными числами и Лисп-реализация математических операций над комплексными числами.

Решение:

Лисп-реализация математических операций над комплексными числами.

Ответ: Лисп-реализация математических операций над комплексными числами.

Пример 2.

Выполнить вычитания двух комплексных чисел: Лисп-реализация математических операций над комплексными числами и Лисп-реализация математических операций над комплексными числами.

Решение:

Лисп-реализация математических операций над комплексными числами.

Ответ: Лисп-реализация математических операций над комплексными числами.

Пример 3.

Выполнить умножение двух комплексных чисел: Лисп-реализация математических операций над комплексными числами и Лисп-реализация математических операций над комплексными числами.

Решение:

Лисп-реализация математических операций над комплексными числами.

Ответ: Лисп-реализация математических операций над комплексными числами.

Пример 4.

Выполнить деление двух комплексных чисел: Лисп-реализация математических операций над комплексными числами и Лисп-реализация математических операций над комплексными числами.

Решение:

Лисп-реализация математических операций над комплексными числами.

Ответ: i.


2. Математические и алгоритмические основы решения задачи


2.1 Понятие о комплексных числах


Для решения алгебраических уравнений недостаточно действительных чисел. Поэтому естественно стремление сделать эти уравнения разрешимыми, что в свою очередь приводит к расширению понятия числа. Например, для того чтобы любое уравнение x+a=b имело корни, положительных чисел недостаточно и поэтому возникает потребность ввести отрицательные числа и нуль.

Древнегреческие математики считали, что a=c и b=а только натуральные числа, но в практических расчетах за два тысячелетия до нашей эры в Древнем Египте и Древнем Вавилоне уже применялись дроби. Следующим важным этапом в развитии понятия о числе было введение отрицательных чисел – это было сделано китайскими математиками за 2 века до нашей эры. Отрицательные числа применял в 3 веке нашей эры древнегреческий математик Диофант, знавший уже правила действий над ними, а в 7 веке нашей эры эти числа подробно изучили индийские ученые, которые сравнивали такие числа с долгом. С помощью отрицательных чисел можно было единым образом описывать изменение величин. Уже в 8 веке нашей эры было установлено, что квадратный корень из положительного числа имеет два значение - положительное и отрицательное, а из отрицательных чисел квадратные корни извлечь нельзя: нет такого числа х, чтобы х2 = -9. В 16 веке в связи с изучением кубических уравнений оказалось необходимым извлекать квадратные корни из отрицательных чисел. В формуле для решения кубических уравнений содержатся кубические и квадратные корни. Эта формула безотказно действует в случае, когда уравнение имеет один действительный корень (например, для уравнения  х3+3х-4=0), а если оно имело 3 действительных корня (например, х3-7х+6=0), то под знаком квадратного корня оказывалось отрицательное число. Получалось, что путь к этим 3 корням уравнения ведет через невозможную операцию извлечения квадратного корня из отрицательного числа.

Чтобы объяснить получившийся парадокс, итальянский алгебраист Дж.  Кардано в 1545 предложил ввести числа новой природы. Он показал, что система уравнений х+у=10, ху=40 не имеющая решений в множестве действительных чисел, имеет решение всегда Лисп-реализация математических операций над комплексными числами, Лисп-реализация математических операций над комплексными числами, нужно только условиться действовать над такими выражениями по правилам обычной алгебры и считать, что Лисп-реализация математических операций над комплексными числами. Кардано называл такие величины  «чисто отрицательными» и даже «софистически отрицательными», считая их бесполезными и стремился не применять их. В самом деле, с помощью таких чисел нельзя выразить ни результат измерения какой-нибудь величины, ни изменение этой величины. Но уже в 1572 г. вышла книга итальянского алгебраиста Р. Бомбелли, в котором были установлены первые правила арифметических операций над такими числами, вплоть до извлечения из них кубических корней. Название «мнимые числа» ввел в 1637г. французский математик и философ Р. Декарт, а в 1777г. один из крупнейших математиков VIII века Х. Эйлер предложил использовать первую букву французского числа Лисп-реализация математических операций над комплексными числами(мнимой единицы), этот символ вошел во всеобщее употребление благодаря К. Гауссу (1831г).

В течение 17 века продолжалось обсуждение арифметической природы мнимостей, возможности дать им геометрическое истолкование. Постепенно развивалась техника операций над комплексными числами. На рубеже 17-18 веков была построена общая теория корней n-й степени сначала из отрицательных, а впоследствии и из любых комплексных чисел.

В конце 18 века французский математик Ж. Лагранж смог сказать, что математический анализ уже не затрудняют мнимые величины. С помощью комплексных чисел научились выражать решения линейных дифференциальных уравнений с постоянным коэффициентом. Такие уравнения встречаются, например, в теории колебаний материальной точки в сопротивляющейся среде. Я. Бернулли применил комплексные числа для вычисления интегралов. Хотя в течении 18 века с помощью комплексных чисел были решены многие вопросы, в том числе и прикладные задачи, связанные с картографией, гидродинамикой и т. д., однако еще не было строго логического обоснования теории этих чисел. Поэтому французский ученый П. Лаплас считал, что результаты, получаемые с помощью мнимых чисел, - только наведение, приобретающие характер настоящих истин лишь после подтверждения прямыми доказательствами. В конце 18- начале 19 веков было получено геометрическое истолкование комплексных чисел. Датчанин Г.Вессель, француз Ж. Арган и немец К. Гаусс независимо друг от друга предложили изображать комплексное число Лисп-реализация математических операций над комплексными числами точкой М(а,b) на координатной плоскости. Позднее оказалось, что еще удобнее изображать число не самой точкой М, а вектором ОМ, идущим в эту точку из начала координат. При таком истолковании сложению и вычитанию комплексных чисел соответствуют эти же операции над векторами.

Геометрические истолкования комплексных чисел позволили определить многие понятия, связанные с функциями комплексного переменного, расширило область их применения. Стало ясно, что комплексные числа полезны во многих вопросах, где имеют дело с величинами, которые изображаются векторами на плоскости: при изучении течения жидкости, задач теории упругости, в теоретической электротехнике.


2.2 Действия с комплексными числами


Рассмотрим решение квадратного уравнения х2 +1 = 0. Отсюда х2  = -1. Число х, квадрат которого равен –1, называется мнимой единицей и обозначается i. Таким образом , i2 = -1, откуда Лисп-реализация математических операций над комплексными числами. Решение квадратного уравнения, например, х2 – 8х + 25 = 0, можно записать следующим образом:


Лисп-реализация математических операций над комплексными числами.


Числа вида 4+3i и 4-3i называют комплексными числами. В общем виде комплексное число записывается а + bi, где a и b- действительные  числа, а i – мнимая единица. Число а называется действительной частью комплексного числа, bi-мнимой частью этого числа, b- коэффициентом мнимой части комплексного числа.


2.2.1 Сложение комплексных чисел

Суммой двух комплексных чисел z1 = a + bi и z2 = c + di называется комплексное число z = (a+c) + (b+d)i.  Числа a + bi и a-bi называются сопряженными. Их сумма равна действительному числу 2а,


(а+bi) + (а-bi) = 2а.


Числа а+bi и -a-bi называются противоположными. Их сумма равна нулю. Комплексные числа равны, если равны их действительные части и коэффициенты мнимых частей: а+bi = c+di, если a = c, b = d.   Комплексное число равно нулю тогда, когда его действительная часть и коэффициент мнимой части равны нулю, т.е. z=a + bi = 0, если a=0, b=0.  Действительные числа являются частным случаем комплексных чисел. Если b=0, то a+bi=a - действительное число. Если а = 0, Лисп-реализация математических операций над комплексными числами, то a + bi = bi – чисто мнимое число. Для комплексных чисел справедливы переместительный и сочетательный законы сложения. Их справедливость следует из того, что сложение комплексных чисел по существу сводится к сложению действительных частей и коэффициентов мнимых частей, а они являются действительными числами, для которых справедливы указанные законы.


2.2.2 Вычитание комплексных чисел

Вычитание комплексных чисел определяется как действие, обратное сложению: разностью двух комплексных чисел a + bi  и  с + di называется комплексное число х + уi, которое в сумме с вычитаемым дает уменьшаемое. Отсюда, исходя из определения сложения и равенства комплексных чисел получим два уравнения, из которых найдем, что х = а-с, у = b-d. Значит,


(а+bi) - (c+di) = (a-c) + (b-d)i.


2.2.3 Произведение комплексных чисел

Произведение комплексных чисел z1=a+bi и z2=c+di называется комплексное число


z =(ac-bd) + (ad + bc)i, z1z2 = (a + bi)(c + di) = (ac - bd) + (ad + bc)i.


Легко проверить, что умножение комплексных чисел можно выполнять как умножение многочленов с заменой i2 на –1. Для умножения комплексных чисел также справедливы переместительный и сочетательный законы, а также распределительный закон умножения по отношению к сложению.

Из определения умножения получим, что произведение сопряженных комплексных чисел равно действительному числу:


(a + bi)(a - bi) = a2 + b2


2.2.4 Деление комплексных чисел

Деление комплексных чисел, кроме деления на нуль, определяется как действие, обратное умножению. Конкретное правило деления получим, записав частное в виде дроби и умножив числитель и знаменатель этой дроби на число, сопряженное со знаменателем:


Лисп-реализация математических операций над комплексными числами.


3. Функциональные модели и блок-схемы решения задачи


Функциональные модели и блок-схемы решения задачи представлены на рисунках 1 – 4.

Используемые обозначения:

N1 – первое комплексное число;

N2 – второе комплексное число;

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

C – мнимая часть первого комплексного числа;

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

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


Лисп-реализация математических операций над комплексными числами

Рисунок 1 – Функциональная модель решения задачи для функции SUM_COMPLEX


Лисп-реализация математических операций над комплексными числами

Рисунок 2 – Функциональная модель решения задачи для функции SUBTR_COMPLEX


Лисп-реализация математических операций над комплексными числами

Рисунок 3 – Функциональная модель решения задачи для функции MULT_COMPLEX


Лисп-реализация математических операций над комплексными числами

Рисунок 4 – Функциональная модель решения задачи для функции DIV_COMPLEX


4. Программная реализация решения задачи


ЗАВОДИМ ПЕРЕМЕННЫЕ ДЛЯ КОМПЛЕКСНЫХ ЧИСЕЛ

(SETQ NUM1 0)

(SETQ NUM2 0)

(SETQ INPUT_STREAM (OPEN " D:\\COMLEX_NUMBERS.TXT" :DIRECTION :INPUT));ЧИСЛА ХРАНЯТЬСЯ В ФАЙЛЕ В ВИДЕ СПИСКА (A B); ГДЕ A - ДЕЙСВИТЕЛЬНАЯ ЧАСТЬ, B - МНИМАЯ; СЧИТЫВАЕМ ЧИСЛА ИЗ ФАЙЛА

(SETQ NUM1 (READ INPUT_STREAM))

(SETQ NUM2 (READ INPUT_STREAM))

(CLOSE INPUT_STREAM)

СУММА КОМПЛЕКСНЫХ ЧИСЕЛ

(DEFUNSUM_COMPLEX (N1 N2)

(LIST (+ (CAR N1) (CAR N2)) (+ (CADR N1) (CADR N2))))

РАЗНОСТЬ КОМПЛЕКСНЫХ ЧИСЕЛ

(DEFUNSUBTR_COMPLEX (N1 N2)

(LIST (- (CAR N1) (CAR N2)) (- (CADR N1) (CADR N2))))

ПРОИЗВЕДЕНИЕ КОМПЛЕКСНЫХ ЧИСЕЛ

(DEFUNMULT_COMPLEX (N1 N2)

ОБЪЯВЛЕНИЕ ВСПОМОГАТЕЛЬНЫХ ПЕРЕМЕННЫХ

(DECLARE (SPECIAL A))

(DECLARE (SPECIAL B))

(DECLARE (SPECIAL C))

(DECLARE (SPECIAL D))

(SETQ A (CAR N1))

(SETQ B (CADR N1))

(SETQ C (CAR N2))

(SETQ D (CADR N2))

(LIST (- (* A C) (* B D)) (+ (* A D)(* B C))))

ДЕЛЕНИЕ КОМПЛЕКСНЫХ ЧИСЕЛ

(DEFUNDIV_COMPLEX (N1 N2)

ОБЪЯВЛЕНИЕ ВСПОМОГАТЕЛЬНЫХ ПЕРЕМЕННЫХ

(DECLARE (SPECIAL A))

(DECLARE (SPECIAL B))

(DECLARE (SPECIAL C))

(DECLARE (SPECIAL D))

(SETQ A (CAR N1))

(SETQ B (CADR N1))

(SETQ C (CAR N2))

(SETQ D (CADR N2))

(LIST (FLOAT (/ (+ (* A C) (* B D)) (+ (* C C) (* D D)))) (FLOAT (/ (- (* B C) (* A D)) (+ (* C C) (* D D))))))

ЗАПИСЫВАЕМ РЕЗУЛЬТАТ

(SETQ OUTPUT_STREAM (OPEN " D:\\RESULT.TXT" :DIRECTION :OUTPUT)) (DEFUNPRINT_OPERATIONS (N1 N2)

(MAPCAR 'SUM_COMPLEX N1 N2))

(PRINT (LIST 'NUMBER1 NUM1) OUTPUT_STREAM)

(PRINT (LIST 'NUMBER2 NUM2) OUTPUT_STREAM)

(PRINT OUTPUT_STREAM)

(PRINT (LIST 'SUM (MAPCAR 'SUM_COMPLEX NUM1 NUM2)) OUTPUT_STREAM)

(PRINT (LIST 'SUBTRACTION (MAPCAR 'SUBTR_COMPLEX NUM1 NUM2)) OUTPUT_STREAM)

(PRINT (LIST 'MULTIPLICATION (MAPCAR 'MULT_COMPLEX NUM1 NUM2)) OUTPUT_STREAM)

(PRINT (LIST 'DIVISION (MAPCAR 'DIV_COMPLEX NUM1 NUM2)) OUTPUT_STREAM)

(TERPRI OUTPUT_STREAM)

(CLOSE OUTPUT_STREAM)

5. Пример выполнения программы


Пример 1.


Лисп-реализация математических операций над комплексными числами

Рисунок 5 – Входные данные


Лисп-реализация математических операций над комплексными числами

Рисунок 6 – Выходные данные


Пример 2.


Лисп-реализация математических операций над комплексными числами

Рисунок 7 – Входные данные


Лисп-реализация математических операций над комплексными числами

Рисунок 8 – Выходные данные


Пример 3.


Лисп-реализация математических операций над комплексными числами

Рисунок 9 – Входные данные


Лисп-реализация математических операций над комплексными числами

Рисунок 10 – Выходные данные


Заключение


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

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


Список использованных источников и литературы


Выгодский, М.Я. Справочник по элементарной математике. [Текст] / М.Я. Выгодский – М.: АСТ: Астрель, 2006. С. 509.

Дадаян, А.А. Алгебра и геометрия. [Текст] / А.А Дадаян, В.А.Дударенко. – М.: Минск, 1999. С. 342.

Камалян, Р.З. Высшая математика. [Текст] / Р.З.Камалян. – М.: ИМСИТ, 2004. С.310.

Комплексное число [Электронный ресурс] – Режим доступа: http://ru.wikipedia.org/wiki/Комплексное_число.

Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В.Бржезовский. – М.: ГУАП, 2003. С. 79.

Лисп-реализация математических операций над комплексными числами

Похожие работы:

  1. ЛИСП-реализация основных операций над базами данных
  2. • ЛИСП-реализация основных операций над нечеткими ...
  3. • ЛИСП-реализация операций над матрицами
  4. • Красота повтора
  5. • Электрический импеданс
  6. • Обработка результатов психологических тестов (ЛИСП ...
  7. • Нахождение корней уравнения методом простой итерации (ЛИСП ...
  8. • ЛИСП
  9. • Нахождение корней уравнения методом Ньютона (ЛИСП ...
  10. • Лисп-реализация алгоритма кодирования информации RSA
  11. • Лисп-реализация конечных автоматов
  12. • ЛИСП-реализация основных способов вычисления ...
  13. • Методические указания по микропроцессорным системам
  14. • АвтоЛИСП - реализация языка программирования
  15. • Функциональное и логическое программирование
  16. • Форматированный ввод
  17. • Определение связности графа на Лиспе
  18. • Составление расписания встреч участников соревнований
  19. • Надежность функционирования систем
Рефетека ру refoteka@gmail.com