Содержание
Введение
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.