Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алексеев информатика.doc
Скачиваний:
321
Добавлен:
15.03.2015
Размер:
17.6 Mб
Скачать

8.2.3. Операции с комплексными числами

Система позволяет просто выполнять операции с комплексными числами. Такие действия необходимы при радиотехнических и электротехнических расчетах.

Следующий документ иллюстрирует простейшие вычисления с комплексными числами.

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

Выделить действительную и мнимую части комплексного числа (например, е3i) можно следующим образом:

Вычисление модуля числа 1 + i осуществляется естественным путем:

Для расчета аргумента имеется специальная функция:

Несложно найти комплексно сопряженное число (напомним, что сопряженное число имеет противоположный знак перед мнимой частью), например:

Чтобы получить сопряженное число, нужно выделить исходное число и нажать аккорд клавиш Shift + «.

Программа Mathcad позволяет легко решать системы линейных уравнений с комплексными коэффициентами.

Предположим, что дана система уравнений:

Требуется найти токи I1 и I2.

Приведем фрагмент документа Mathcad, который показывает порядок решения системы линейных уравнений с комплексными коэффициентами.

Для решения системы используются матрица коэффициентов R и матрица свободных членов F. Решение находится в виде произведения обратной матрицы коэффициентов на матрицу свободных членов.

Таким образом, ток а ток

8.2.4. Вопросы программирования

Система Mathcad обладает широким набором стандартных функций, позволяет самостоятельно создавать оригинальные функции пользователя. Тем не менее при решении нестандартных задач возникает необходимость в разработке особенных алгоритмов вычислений. Для этих случаев предусмотрен собственный язык системы, с помощью которого можно решать уникальные (редкие) задачи. Заметим, что возможность программирования не является главным достоинством системы Mathcad. Главное достоинство системы – возможность решения множества типичных задач без программирования.

Рассмотрим порядок составления простейших программ на примере базовых структур программирования.

Предположим, что необходимо вычислить сумму ряда

Найти это значение в системе Mathcad можно просто, выбрав на соответствующей палитре знак суммы и заполнив пустые поля.

Для учебных целей нахождение суммы ряда выполним путем использования программы, текст которой приведен ниже (базовая структура программирования «Цикл»).

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

Ввод функции пользователя с именем sum(n) осуществляется с помощью палитры «Программирование», показанной слева. Вертикальная линия вводится с помощью кнопки Add Line, а ключевое слово for и стрелка  (локальный оператор присваивания) – с помощью одноименных кнопок.

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

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

В качестве примера использования итерационных циклов рассмотрим порядок расчета иррационального числа π с помощью сходящегося ряда. Точность вычисления этого числа будет зависеть от вводимой пользователем допустимой абсолютной погрешности.

Основная идея подобных программ состоит в том, что на очередном типовом цикле вычислений (другими словами, на очередной итерации) происходит сравнение вычисленного значения члена сходящегося ряда с выбранной самим пользователем допустимой погрешностью. Если рассчитанное значение по модулю больше допустимой погрешности, то циклический процесс продолжается. В момент, когда очередной член ряда становится меньше допустимой абсолютной погрешности, вычисления прекращаются.

Для итерационных циклических процессов трудно заранее предсказать, сколько потребуется итераций (т. е. циклов) для достижения результата с заданной точностью. На продолжительность расчетов влияет вид функции (а значит и скорость сходимости) и выбранная программистом погрешность вычислений.

Рассмотрим порядок разработки программы для вычисления . Расчетная формула выглядит так:

Для наглядности запишем несколько членов этого знакочередующегося ряда и каждый член ряда обозначим символами аi:

Чтобы получить компактную программу, выведем рекуррентную формулу, которая позволяет рассчитать последующий член ряда по известному предыдущему члену ряда. На основании предыдущей формулы запишем п + 1-й член ряда:

Возьмем отношение п + 1-го члена ряда к n-му члену ряда:

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

Блок-схема алгоритма для вычисления константы /4 приведена на рисунке.

На рисунке приняты такие обозначения:

pogr – абсолютная погрешность, с которой вычисляется число ; summaрезультат (сумма, накопленная при вычислении); а – значение очередного члена ряда; п – число членов ряда; qкоэффициент.

В программе используется оператор while (пока), который обеспечивает многократные вычисления в теле цикла, пока выполняется условие, записанное после этого оператора.

Результаты вычислений накапливаются в переменной summa. Первоначально ее значение обнуляется, а первый член ряда принимается равным единице.

Завершается программа выводом значения переменной pi (0.00001). В скобках указано принятое значение абсолютной погрешности вычислений.

Полученный результат существенно отличается от истинного значения иррационального числа π. Это объясняется большим значением выбранной погрешности.

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

Блок-схема алгоритма для решения этой задачи, – текст программы на языке Mathcad и результаты, полученные при расчете, – приведена ниже.

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

Прокомментируем составленную программу.

Смысл первых двух строк очевиден (аналогичные конструкции есть во многих языках программирования высокого уровня – операторы условной передачи управления). Условие ветвления в третьей строке могло быть записано по-другому: if > 4. Английское слово otherwise означает «иначе» (во всех других случаях), т. е. при х большем 4.

Во второй строке использован специальный знак равенства, который берется на палитре «Булевы операторы».

После определения функции пользователя приведен пример ее использования. С этой целью выполнен расчет для аргумента, изменяющегося от – 6 до 6 с шагом 2.