Лабораторная работа №1
Вид материала | Лабораторная работа |
СодержаниеТригонометрическая форма комплексного числа Формула Эйлера e = (cos + isin). (3)Формула Муавра-Лапласа Элементарные функции комплексных переменных |
- Методические указания к лабораторным работам Лабораторная работа, 357.24kb.
- Лабораторная работа №3 кпк лабораторная работа №3 Тема: карманный персональный компьютер, 173.34kb.
- Методические возможности стенда Особенности работы на стендах уилс-1 Ознакомительное, 1487.3kb.
- Лабораторная работа по курсу «Физические основы микроэлектроники», 136.21kb.
- Лабораторная работа, 166.92kb.
- Самостоятельная работа по учебным пособиям, 471.48kb.
- Конспект урока в 9 классе по теме: «Магний», 84.54kb.
- Лабораторная работа №1 Введение в Windows. Работа с окнами и приложениями в Windows, 67.41kb.
- Знакомство c Excel, 1212.51kb.
- Лабораторная работа, 105.21kb.
Лабораторная работа № 3.1
АРИФМЕТИКА КОМПЛЕКСНЫХ ЧИСЕЛ
Комплексным числом называется сумма вида z = x + iy,
где
i – мнимая единица: i2 = -1;
x, y – вещественные числа: x = Rez; y = Imz.
Комплексные числа
называются комплексно сопряженными.
Операции над комплексными числами.
Пусть
z1 = x1 + iy1; z2 = x2 + iy2
тогда
z1 z2 = (x1 x2) + i(y1 y2);
z1 * z2 = (x1x2 – y1y2) + i(x1y2 + y1x2); (1)
Тригонометрическая форма комплексного числа
z = x + iy = r (cos + i sin),
где
число r называется модулем (абсолютной величиной) комплексного числа, r = z;
угол определяется из условий
Угол называется аргументом комплексного числа: = argz. Аргумент определяется с точностью до угла, кратного 2.
Пусть
z1 = r1(cos1 + isin1); z2 = r2(cos2 + isin2);
тогда
z1*z2 = r1*r2(cos(1+2) + isin(1+2)); (2)
Формула Эйлера
ei = (cos + isin). (3)
Формула Муавра-Лапласа
(r(cos + isin))n = rn(cosn + isinn) (n – целое); (4)
zn = rn(cosn + isinn).
Элементарные функции комплексных переменных
z = x + iy = rei;
ez = ex+iy = ex(cosy + isiny); (5)
shz = (ez – e-z)/2 = shxcosy + ichxsiny; (6)
chz = (ez + e-z)/2 = chxcosy + ishxsiny; (7)
sinz = (eiz - e-iz)/2i = sinxchy + icosxshy; (8)
cosz = (eiz + e-iz)/2 = cosxchy - isinxshy; (9)
lnz = ln(rei) = lnr + i( + 2k), k = 0, 1, 2, (10)
Напомним, что аргумент определяется с точностью до угла, кратного 2.
ЗАДАНИЯ
1. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу решения системы линейных алгебраических уравнений порядка n (n 10) с комплексными коэффициентами методом Гаусса (Жордана) с выбором главного элемента.
Порядок и коэффициенты системы вводятся из файла. В файл результатов выдаются: исходная система; решение системы; результат подстановки решения в систему в виде “левая часть = правая часть”.
2. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу обращения матрицы порядка n (n 10) с комплексными коэффициентами методом Гаусса (Жордана) с выбором главного элемента.
Порядок и коэффициенты матрицы вводятся из файла. В файл результатов выдаются: исходная матрица; обратная матрица; произведение исходной матрицы на обратную.
3. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу вычисления определителя матрицы порядка n (n 10) с комплексными коэффициентами методом Гаусса с выбором главного элемента.
Порядок и коэффициенты матрицы вводятся из файла
4. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу вычисления определителя трехдиагональной матрицы порядка n (n 40) с комплексными коэффициентами методом Гаусса.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали) вводятся из файла.
5. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу решения системы линейных алгебраических уравнений порядка n (n 40) для трехдиагональной матрицы с комплексными коэффициентами методом прогонки. Предусмотреть экономное использование памяти.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали), вектор правых частей вводятся из файла. В файл результатов выдаются: исходная система; решение системы; результат подстановки решения в систему в виде “левая часть = правая часть”.
6. Сформировать модуль для работы с комплексными числами. Используя модуль написать программу обращения трехдиагональной матрицы порядка n (n 40) с комплексными коэффициентами методом прогонки. предусмотреть экономное использование памяти.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали) вводятся из файла. В файл результатов выдаются: исходная матрица; обратная матрица; произведение исходной матрицы на обратную.
7.Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость равенства
sin(x+iy) = sinxchy + icosxshy.
Выполнить расчеты для
z = rei, r = 0.5, = 0, /8, 2/8, , 2.
Результаты расчетов представить в виде
“z=; левая часть = правая часть”.
8.Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость равенства
cos(x+iy) = cosxchy - isinxshy.
Выполнить расчеты для
z = rei, r = 0.5, = 0, /8, 2/8, , 2.
Результаты расчетов представить в виде
“z=; левая часть = правая часть”.
9.Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость равенства
ch2z = 2ch2z - 1.
Выполнить расчеты для
z = rei, r = 0.5, = 0, /8, 2/8, , 2.
Результаты расчетов представить в виде
“z=; левая часть = правая часть”.
10.Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость равенства
sh2z = 2shzchz.
Выполнить расчеты для
z = rei, r = 0.5, = 0, /8, 2/8, , 2.
Результаты расчетов представить в виде
“z=; левая часть = правая часть”.
11. Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию с аргументами z, n для вычисления zn (n – целое) методом сокращенного умножения:
- определяем двоичное разложение числа n
n = pkpk-1p1p0(2); pi=0,1, i=0, 1, , k;
n = p020 + p121 + +pk-12k-1 + pk2k;
- полагаем u = z; v = 1;
- для i = 0, 1, , k вычисляем
если pi 0, то v := v*u; u := u2;
- полагаем zn = v.
Например, для вычисления z19 полагаем
19 = 10011(2), (k=4);
u = z; v = 1;
для i = 0, 1, 2, 3, 4 вычисляем
v = vu; u = uu; v = vu; u = uu; u = uu; u = uu; v = vu; u = uu;
полагаем z19 = v.
Всего потребовалось 8 умножений – вместо 18.
Выполнить расчеты для n = 16, 17, 18, z = rei, r = 2, = 0, /4, 2/4, , 2. Результаты расчетов сравнить с расчетом по формуле Муавра-Лапласа.
12.Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления lnz (z<1) c точностью до .
Воспользоваться разложением
Выполнить расчеты для z = rei, r = 0.5, = 0, /8, 2/8, , 2. Сравнить со значениями полученными по формуле (10).
13.Сформировать модуль для работы с комплексными числами. Используя модуль построить изолинии функции zn - 1 в квадрате -2 x 2, -2 y 2.
Указание: Изолинией (линией уровня) функции f(x,y) называется линия, являющаяся решением уравнения
f(x,y) = c (c – заданная константа).
Для получения точек изолинии можно использовать следующий метод: задаем значения одной из переменных и решаем уравнение относительно другой переменной.
Например, для построения изолинии функции f(x,y) в прямоугольнике a x b, c y d:
полагаем y = yi = a + ih, i = 0, 1, , k, h = (d – c)/k;
для каждого yi ищем корни уравнения f(x,yi) = c на отрезке a x b.
Выполнить расчеты для c = c1, c2, , cm, например, c = 0.1, 0.5, 1, 2, 4, 6.
14. Сформировать модуль для работы с комплексными числами. Используя модуль построить изолинии функции z + 1/z для 0 < x 2, 0 < y 2 (см. указание к задаче 13).
Выполнить расчеты для c = c1, c2, , cm, например, c = 0.1, 0.5, 1, 2, 4, 6.
15. Сформировать модуль для работы с комплексными числами. Используя модуль построить изолинии функции chz для -2 x 2, -2 y 2 (см. указание к задаче 13).
Выполнить расчеты для c = c1, c2, , cm, например, c = 0.05, 0.1, 0.2, 0.5, 1, 2, 3.
16. Сформировать модуль для работы с комплексными числами. Используя модуль построить изолинии функции cosz для -2 x 2, -2 y 2 (см. указание к задаче 13).
Выполнить расчеты для c = c1, c2, , cm, например, c = 0.05, 0.1, 0.2, 0.5, 1, 2, 3.
17. Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления значений полинома
Pn(z) = a0zn + a1zn-1 + +an
с комплексными коэффициентами по схеме Горнера. С помощью этой функции построить изолинии функции Pn(z) в квадрате -M x,y M, M = (a1 + a2 + + an|)/a0 (см. указание к задаче 13).
Степень и коэффициенты полинома вводятся из файла. Выполнить расчеты для c = c1, c2, , cm, например, c = 0.1, 0.5, 1, 2,
18. Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость формулы
Предел вычислять вдоль луча z = rei (r0 = 1; ri = ri-1/2), угол вводится с экрана.
19. Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость формулы
Предел вычислять вдоль луча z = rei (r0 = 1; ri = ri-1/2), угол вводится с экрана.
20. Сформировать модуль для работы с комплексными числами. Используя модуль написать функцию для вычисления
с точностью до . С помощью этой функции проверить справедливость формулы
Предел вычислять вдоль луча z = rei (r0 = 1; ri = ri-1/2), угол вводится с экрана.
21.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. Найти на комплексой плоскости точки zi, zj (i,j = 1, , n; i j), расстояние между которыми минимально. Дать графическое представление задачи.
22.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. Найти на комплексой плоскости точки zi, zj (i,j = 1, , n; i j), расположенные на одном луче, выходящим из точки z = 0. Если таких точек нет, найти точки, расположенные на лучах, максимально “близких” друг к другу – с минимальным углом между ними. Дать графическое представление задачи.
23.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. В точках zi, i = 1, …, n вычисляются значения функции
Найти точку, в которой Imw принимает максимальное значение.
24.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. Упорядочить последовательность zi методом сортировки выбором по неубыванию абсолютной величины числа, если абсолютные величины совпадают, - по неубыванию аргументов чисел. (Указание: в качестве ключа для сортировки выбирается величина 2z + argz).
В файл результатов выдаются исходная последовательность и упорядоченная последовательность с указанием абсолютной величины и аргументов чисел.
25.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. Упорядочить последовательность zi методом “пузырька” по неубыванию абсолютной величины числа, если абсолютные величины совпадают, - по неубыванию аргументов чисел. (Указание: в качестве ключа для сортировки выбирается величина 2z + argz).
В файл результатов выдаются исходная последовательность и упорядоченная последовательность с указанием абсолютной величины и аргументов чисел.
26.Сформировать модуль для работы с комплексными числами. используя модуль решить задачу:
Из файла вводятся целое n (n 100), комплексные z1, z2, , zn. Упорядочить последовательность zi методом сортировки разделением по неубыванию абсолютной величины числа, если абсолютные величины совпадают, - по неубыванию аргументов чисел. (Указание: в качестве ключа для сортировки выбирается величина 2z + argz).
В файл результатов выдаются исходная последовательность и упорядоченная последовательность с указанием абсолютной величины и аргументов чисел.
27. Сформировать модуль для работы с комплексными числами. Используя модуль сравнить по времени исполнения алгоритмы сортировки выбором и сортировки разделением. Для этого:
- написать процедуры сортировки массива комплексных чисел по неубыванию величины 2z + argz (массив упорядочивается по неубованию абсолютных величин чисел, при совпадении абсолютных величин – по неубыванию аргументов чисел);
- используя датчик случайных чисел, равномерно распределенных на отрезке [-1, 1], сформировать массив из N комплексных чисел;
- Упорядочить массив (! один и тот же исходный массив !) каждым из алгоритмов, засекая время исполнения.
Выполнить расчеты для N = 10 (контрольный просчет) и N > 1000 (основной расчет).
28. Сформировать модуль для работы с комплексными числами. Используя модуль сравнить по времени исполнения алгоритмы сортировки выбором, сортировки методом “пузырька” и сортировки перестановками:
для i = 1, …, n-1 выполнить
для j = i+1, …, n выполнить
если xi > xj, то переставить xi, xj.
Для этого:
- написать процедуры сортировки массива комплексных чисел по неубыванию величины 2z + argz (массив упорядочивается по неубованию абсолютных величин чисел, при совпадении абсолютных величин – по неубыванию аргументов чисел);
- используя датчик случайных чисел, равномерно распределенных на отрезке [-1, 1], сформировать массив из N комплексных чисел;
- Упорядочить массив (! один и тот же исходный массив !) каждым из алгоритмов, засекая время исполнения.
Выполнить расчеты для N = 10 (контрольный просчет) и N > 1000 (основной расчет).