Как выделить мнимую и действительную часть в mathcad
1. Выберите одну или несколько областей для форматирования либо щелкните за пределами области формул, чтобы применить форматирование результатов ко всем областям формул в документе.
2. На вкладке Форматирование формул (Math Formatting) в группе Результаты (Results) можно настроить следующие опции:
◦ Формат результатов (Result Format) — управляет форматом изображения числовых результатов.
В приведенных ниже примерах используются значения параметров Точность отображения (Display Precision) и Показывать нули в младших разрядах (Show Trailing Zeros) , заданные по умолчанию.
▪ (Общий) ((General)) — результаты отображаются в экспоненциальном представлении, если превышен порог перехода на экспоненциальный формат. Порог перехода равен 3.
12461.7556=1.246×10 4
▪ (Десятичный) ((Decimal)) — результаты никогда не отображаются в экспоненциальном представлении.
12461.7556 = 12461.756
В PTC Mathcad отображается максимум 15 десятичных знаков, но только первые 14 являются точными. Например:
12345678901234567890 = 12345678901234600000
▪ (Научный) ((Scientific)) — результаты всегда отображаются в экспоненциальном представлении.
12461.7556 = 1,246 × 10 4
▪ (Проектирование) ((Engineering)) — результаты всегда отображаются в экспоненциальном представлении, и показатели степени кратны трем.
12461.7556 = 12,462 × 10 3
▪ Процент (Percent) — результаты умножаются на сто и отображаются как проценты.
12461.7556 = 12462175.56%
◦ Показывать нули в младших разрядах (Show Trailing Zeros) — проверяет, отображаются ли нули в младших разрядах справа от десятичной точки, чтобы соответствовать текущему выбору Точность отображения (Display Precision) .
Например, если точность отображения равна трем, то:
1.5 = 1.5, когда нули в младших разрядах не отображаются, и 1.5 = 1.500, когда нули в младших разрядах отображаются.
◦ Точность отображения (Display Precision) — управляет количеством цифр, отображаемых справа от десятичной точки, при условии, что выбрана опция Показывать нули в младших разрядах (Show Trailing Zeros) . Тем не менее, если N является количеством цифр слева от десятичной точки, то справа от десятичной точки может быть показано максимум 16 — N цифр, независимо от настройки Точность отображения (Display Precision) . Эта опция влияет только на изображение. Расчеты производятся с полной точностью, независимо от способа отображения результатов.
Число десятичных разрядов должно быть между 0 и 16 включительно.
▪ — уменьшает количество отображаемых десятичных разрядов.
▪ — увеличивает количество отображаемых десятичных разрядов.
◦ Комплексные значения (Complex Values)
▪ Декартова форма — отображает действительную и мнимую часть комплексных чисел. Этой мнимой частью является i или j.
▪ Полярная форма — отображает величину и угол комплексных чисел. Угол измеряется в радианах или в градусах.
3. Чтобы отменить сделанные изменения и восстановить форматирование результатов по умолчанию, щелкните Очистить формат (Clear Format) .
Работа с комплексными числами в Mathcad
Mathcad поддерживает вычисления с комплексными числами. Согласно математического определения, любое комплексное число можно записать в виде a+bi, где a – действительная часть, b – мнимая часть, i – мнимая единица. В некоторых случаях мнимую единицу принято обозначать как j, для Mathcad это – равнозначные понятия.
Некоторые операции над действительными числами, например, квадратный корень из отрицательного числа, по умолчанию возвращают результат в виде комплексного числа. Поскольку действительные числа есть подмножество комплексных, никаких переключений не требуется.
Поскольку во многих расчетах часто фигурируют переменные i или j (например, при организации суммирования по i), которые не являются мнимой единицей, для ее записи используются специальные сочетания. В частности, отдельно стоящая мнимая единица вводится как 1i или 1j (без пробела и каких-либо разделительных символов). Если мнимая единица вводится со своим числовым множителем в составе мнимой части комплексного числа, следует вводить число и букву i или j подряд, без пробела и знака «умножить». Однако, если в качестве множителя мнимой части выступает переменная, после ее имени необходимо ввести знак умножить и мнимую единицу в виде 1i или 1j.
Другим способом ввода мнимой единицы (только в виде i) является кнопка на панели инструментов «Калькулятор».
Комплексные числа, наравне с действительными, могут входить в состав массивов (векторов и матриц), быть аргументами функций, участвовать в других вычислениях.
Специально для работы с комплексными числами в Mathcad предусмотрен ряд специальных функций: Re(z) – возвращает действительную часть комплексного числа z; Im(z) – возвращает мнимую часть числа z; arg(z) – возвращает расстояние на комплексной плоскости от начала координат до числа z; csgn(z) – возвращает знак комплексного числа (0, если z=0; 1, если Re(z)>0 или Im(z)>0 при Re(z)=0 и -1 во всех остальных случаях).
Если комплексное число записано в форме a+bi, то у него имеется так называемое сопряженное комплексное число вида a-bi. Для быстрого нахождения комплексного сопряженного числа служит оператор, вводимый при помощи сочетания клавиш Shift+’ (рядом с клавишей Enter).
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Как выделить мнимую и действительную часть в mathcad
Чтобы помочь вам приступить к написанию пользовательских функций для PTC Mathcad , имеется ряд примеров кода. См. файл MULTIPLY.C , который находится в подпапке Custom Functions/multiply папки установки PTC Mathcad . MULTIPLY.C содержит функцию с двумя аргументами, которая умножает скаляр на массив. Когда вы скомпилируете и правильно скомпонуете ее, новая функция multiply(a, M) станет доступной после перезапуска PTC Mathcad .
Подробное описание кода в MULTIPLY.C следует далее. Чтобы увидеть код полностью, откройте файл в Visual Studio или любом текстовом редакторе.
#include «mcadincl.h»
Ваша программа C должна включать файл заголовков mcadincl.h , находящийся в подпапке Custom Functions папки установки PTC Mathcad . Этот файл содержит структуры данных, которые позволяют выполнять следующие действия.
• Определять функции, которые может читать PTC Mathcad .
• Выделять и освобождать скаляры и массивы совместимым с PTC Mathcad способом.
• Создавать сообщения об ошибках, которые могут быть возвращены в PTC Mathcad с помощью графического пользовательского интерфейса.
Сообщения об ошибках
Как правило, следующая часть программы определяет коды ошибок для типов ошибок, возникновения которых можно ожидать. Обеспечьте перехват ошибок для несоответствующих типов данных, поскольку это один из наиболее часто встречающихся случаев неправильного применения функций PTC Mathcad . Они определяются совместно, поэтому легко подсчитать общее количество ошибок. Общая сумма требуется функцией CreateUserErrorMessageTable .
#define INTERRUPTED 1
#define INSUFFICIENT_MEMORY 2
#define MUST_BE_REAL 3
#define NUMBER_OF_ERRORS 3
// table of error messages
// if your function never returns an error — you do not need to create this table
char * myErrorMessageTable[NUMBER_OF_ERRORS] =
«interrupted»,.
«insufficient memory»,
«must be real»
>;
PTC Mathcad перехватывает следующие исключения в операциях с плавающей запятой: переполнение, деление на нуль и недопустимая операция. В случае этих исключений PTC Mathcad отображает сообщение об ошибке операции с плавающей запятой под функцией. Когда возникает одна из таких ошибок, PTC Mathcad также освобождает всю выделенную память.
Далее следует код, который выполняет ваш алгоритм. Если вы преобразуете код из существующей библиотеки, необходимо привести его к типам COMPLEXARRAY , COMPLEXSCALAR и MCSTRING , передаваемым и ожидаемым PTC Mathcad .
Первый аргумент в алгоритме является указателем на возвращаемое значение, в данном случае Product . Остальные аргументы являются указателями на входные значения, поступающие из PTC Mathcad .
// this code executes the multiplication
LRESULT MultiplyRealArrayByRealScalar( COMPLEXARRAY * const Product,
LPCCOMPLEXSCALAR Scalar, LPCCOMPLEXARRAY Array )
unsigned int row, col;
// check that the scalar argument is real
if ( Scalar->imag != 0.0)
// if it is not, display «must be real» error message
// under the scalar argument ( the 1st argument )
return MAKELRESULT( MUST_BE_REAL, 1)
// check that the array argument is real
if ( Array->hImag != NULL )
// if it is not, display «must be real» error message
// under the array argument ( the 2nd argument )
return MAKELRESULT( MUST_BE_REAL, 2);
// allocate memory for the product
if( !MathcadArrayAllocate( Product, Array-rows,Array-cols,
TRUE, // allocate memory for the real part
FALSE )) // do not allocate memory for the imaginary part
// if allocation is not successful, return with the appropriate error code
return INSUFFICIENT_MEMORY;
// if all is well so far — go ahead and perform the multiplication
for ( col = 0; col < Product->cols; col++ )
// check that a user has not tried to interrupt the calculation
if (isUserInterrupted())
// if user has interrupted — free the allocated memory
MathcadArrayFree( Product );
// and return with an appropriate error code
return INTERRUPTED;
>
for ( row = 0; row < Product->rows; row++ )
Product->hReal[col][row] =
Scalar-> real*Array-> hReal[col][row];
>
// normal return
return 0;
>
Регистрация функции в PTC Mathcad
Заполните структуру FUNCTIONINFO информацией, необходимой для регистрации функции в PTC Mathcad . Эта структура определяет имя функции в PTC Mathcad , а не имя алгоритма MultiplyRealArrayByRealScalar . Кроме того, она определяет параметры и описание, а также указатель на используемый алгоритм.
FUNCTIONINFO multiply =
// name by which Mathcad will recognize the function
«multiply»,
// description of «multiply» parameters to be used
«a,M»,
// description of the function
«returns the product of real scalar a and real array M»,
// pointer to the executable code
// i.e. code that should be executed when a user types «multiply(a,M) wwID0EVABOB» >Выполните динамическую компоновку библиотеки
DLL обозначает библиотеку динамической компоновки. Следующий код делает эту библиотеку доступной для других функций Windows, в частности PTC Mathcad , через DLL-интерфейс Windows. Необходимо также указать ссылку на точку входа через программную среду. Когда DLL загружается, точка входа DLL вызывается операционной системой. PTC Mathcad требует, чтобы вы регистрировали свои пользовательские функции и свою таблицу сообщений об ошибках во время загрузки DLL.
// DLL entry point code
// the _CRT_INIT function is needed if you are using Microsoft’s 32-bit compiler
BOOL WINAPI _CRT_INIT(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved);
BOOL WINAPI DllEntryPoint (HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
switch (dwReason)
<
case DLL_PROCESS_ATTACH:
// DLL is attaching to the address space of the current process
if (!_CRT_INIT(hDLL, dwReason, lpReserved))
return FALSE;
Регистрация таблицы сообщений об ошибках и функции
Если ваша функция никогда не возвращает ошибку, таблица сообщений об ошибках не требуется. Можно зарегистрировать только одну таблицу сообщений об ошибках на DLL, но можно зарегистрировать несколько функций на DLL. Необходимо также очистить любые остающиеся процессы или определения.
if ( CreateUserErrorMessageTable( hDLL, NUMBER_OF_ERRORS, myErrorMessageTable ) )
// and if the errors register properly, register the user function
CreateUserFunction( hDLL, &multiply );
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
if (!_CRT_INIT(hDLL, dwReason, lpReserved))
return FALSE;
break;
>
return TRUE;
>
#undef INTERRUPTED
#undef INSUFFICIENT_MEMORY
#undef MUST_BE_REAL
#undef NUMBER_OF_ERRORS
Дополнительная информация
• Все значения, передаваемые в и из PTC Mathcad , являются комплексными, имеющими и действительную, и мнимую части в своей структуре (см. mcadincl.h ). Необходимо разделить действительную и мнимую части, если вы намереваетесь обрабатывать их независимо.
• Массивы индексируются сначала по столбцу, а затем по строке в отличие от порядка индексов в PTC Mathcad (сначала по строке, затем по столбцу).
• Все массивы предполагаются двумерными. Если нужно сослаться на вектор, задайте для первого индекса массива (столбец) значение 0.
Как выделить мнимую и действительную часть в mathcad
Основы работы с системой MathCAD и пакетом Simulink системы MatLAB
Для запуска MathCAD необходимо дважды кликнуть левой клавишей мыши (ЛКМ) по его ярлыку (пиктограмме), вынесенному на рабочий стол. Открывшееся окно системы MathCAD подобно другим программам под Windows, оно содержит:
- — титульную строку (строку названия), которая отображает название документа, находящегося в работе;
- — главное меню, включающее 9 пунктов (закладок): Файл (File), Правка (Edit), Вид (View), Вставка (Insert), Формат (Format), Инструменты (Math), Символьные операции (Symbolic), Окно (Window), Справка (Help);
- — две панели инструментов: панель Стандартная с кнопками быстрого управления и панель Форматирования с кнопками редактирования текста;
- — панель Математика, которая является дополнительной, но ее активация значительно сокращает время работы в программе.
В случае, когда какая-либо из панелей инструментов отсутствует (не активизирована в открывшемся окне системы MathCAD), необходимо выполнить: Вид (View) —> Панели инструментов (Toolbars) —> выбор нужной панели (установить галочки).
Вычисления
Вывод на экран вычисленного значения математического выражения осуществляется посредством знака равенства (=). Чтобы переходить от одного выраже ния к другому можно использовать клавишу управления курсором [Tab] или клавишу ввода [Enter].
Перечень некоторых арифметических операций и встроенных функций приведен в таблицах 1.1 и 1.2 соответственно.
Таблица 1.1 — Основные арифметические и математические операции
Название операции
На экране дисплея
Взведение в степень
Извлечение квадратного корня
Абсолютное значение (или детерминант матрицы)
Задание целочисленной диапазонной переменной х1 в интервале от 0 до 2, изменяющейся с шагом «+1»
Задание диапазонной переменной х2 в интервале от 0 до -2, изменяющейся с шагом «-0,5»
Задание функции у с любым аргументом х
Вывод функции у(х), например от аргумента х1
Таблица 1.2 — Основные встроенные функции
Название операции
На экране дисплея
Продолжение таблицы 1.2
Название операции
На экране дисплея
Синус (угол в радиан.)
Косинус (угол в град.)
Тангенс (угол в град.)
Задание комплексного числа z
z : 3 + 5i или zl: 3 + 5j
z := 3 + 5i zl := 3 + 5j
Действительная часть z
Мнимая часть z
Модуль комплексного числа
Аргумент z (в рад.)
Аргумент z (в град.)
Сопряженное комплексное число z
Показательная форма записи
комплексного числа z.3
о 3 !)ки) нельзя располагать в произвольном порядке: блоки, необходимые для выполнения каких-либо операций, должны предшествовать блокам, выполняющим эти операции. В противном случае MathCAD укажет на ошибку, выделив переменную, которая не определена, красным цветом.
Сохранение документа
Для сохранения документа в первый раз необходимо выполнить: Файл (File) —> Сохранить как (Save As) —> в открывшемся окне указать папку сохранения файла и его имя. Расширение *.mcd, с которым записываются все файлы системы MathCAD, указывать не нужно, система делает это автоматически.
Чтобы сохранить изменения, внесенные в уже существующий файл, достаточно выбрать Файл (File) —> Сохранить (Save), либо нажать на пиктограмму ЕЗ на панели инструментов или сочетание клавиш [Ctrl] + [S]. По желанию можно сохранить файл и под другим именем.
2.2.4. Изменение формул MathCAD
Редактируйте формулы в Mathcad так, как подсказывают Вам интуиция и опыт работы с другими текстовыми редакторами. Большинство операций правки формул реализованы естественным образом, однако некоторые из них несколько отличаются от общепринятых, что связано с особенностью Mathcad как вычислительной системы. Рассмотрим основные действия по изменению формул.
Вставка оператора MarhCAD
Операторы могут быть унарными (действующими на один операнд, как, например, оператор транспонирования матрицы или смены знака числа), так и бинарными (например + или /, действующими на два операнда). При вставке нового оператора в документ Mathcad определяет, сколько операндов ему требуется. Если в точке вставки оператор один или оба операнда отсутствуют, Mathcad автоматически помещает рядом с оператором один или два местозаполнителя.
То выражение в формуле, которое выделено линиями ввода в момент вставки оператора, становится его первым операндом.
Последовательность вставки оператора в формулу такова:
- Поместите линии ввода на часть формулы, которая должна стать первым операндом.
- Введите оператор, нажав кнопку на панели инструментов или сочетание клавиш.
Для того чтобы вставить оператор не после, а перед частью формулы, выделенной линиями ввода, нажмите перед его вводом клавишу , которая передвинет вертикальную линию ввода вперед. Это важно, в частности, для вставки оператора отрицания.
На рис. 2.14 показано несколько примеров вставки оператора сложения в разные части формулы, создание которой мы подробно разбирали выше (см. рис. 2.10). В левой колонке рис. 2.14 приведены возможные размещения линий ввода в формуле, а в правой — результат вставки оператора сложения (т. е. нажатия клавиши ). Как видно, Mathcad сам расставляет, если это необходимо, скобки, чтобы часть формулы, отмеченная линиями ввода, стала первым слагаемым.
Рис. 2.14. Вставка оператора в разные части формулы (коллаж)
Рис. 2.15. Вставка оператора вывода
Некоторые операторы Mathcad вставит в правильное место независимо от положения линий ввода. Таков, например, оператор численного вывода =, который по смыслу выдает значение всей формулы в виде числа. На рис. 2.15 показан момент ввода этого оператора в формулу при помощи панели Calculator (Калькулятор), а в листинге 2.1 приведен результат его действия.
Листинг 2.1. Выделение части формулы
Чтобы выделить часть формулы в некоторой математической области (рис. 2.16):
- Поместите ее между линиями ввода, пользуясь, при необходимости, клавишами-стрелками и пробелом.
- Поместите указатель мыши на вертикальную линию ввода, нажмите и удерживайте левую кнопку мыши.
- Удерживая кнопку мыши, протащите указатель мыши вдоль горизонтальной линии ввода, при этом часть формулы будет выделяться обращением цвета.
- Отпустите кнопку мыши, когда будет выделена нужная часть формулы.
Рис. 2.16. Выделение части формулы
Часть формулы можно выделить и без помощи мыши, нажимая клавиши со стрелками при удерживаемой клавише . В этом случае вместо перемещения линий ввода происходит выделение соответствующей части формулы. Многие пользователи находят работу с клавиатурой при выделении части математических областей более удобной.
Удаление части формулы
Чтобы удалить часть формулы:
- Выделите ее.
- Нажмите клавишу .
- Кроме того, можно удалить часть формулы, помещая ее перед вертикальной линией ввода и нажимая клавишу .
Имеется еще один способ удаления части формулы: выделите ее нужную часть, затем нажмите комбинацию клавиш +, тем самым вырезая и помещая ее в буфер обмена. Этот способ удобен в случае, если требуется использовать фрагмент формулы в дальнейшем.
Вырезка, копирование и вставка части формулы MathCAD
Для правки части формулы:
- Выделите ее либо просто поместите между линиями ввода, пользуясь либо мышью, либо клавишами-стрелками и пробелом.
- Воспользуйтесь либо верхним меню Edit (Правка), либо контекстным меню, либо кнопкой на панели инструментов, либо соответствующим сочетанием горячих клавиш (см. рис. 2.17 и 2.18):
- Cut (Вырезать) или + — для вырезки части формулы в буфер;
- Сору (Копировать) или + — для копирования в буфер;
- Paste (Вставить) или + — для вставки из буфера предварительно помещенной туда части формулы.
Рис. 2.17. Правка формул с помощью верхнего меню
Рис. 2.18. Правка формул с помощью контекстного меню
Чтобы переместить (или скопировать) часть формулы из одной части документа в другую, вырежьте (скопируйте) ее в буфер обмена, перейдите к желаемому новому местоположению и вставьте ее туда из буфера.
Изменение чисел или имен переменных и функций
Для того чтобы в уже введенном математическом выражении изменить какое-нибудь число или имя (переменной или функции):
- Щелкните мышью на имени переменной или функции, при необходимости передвиньте линии ввода, пользуясь либо мышью, либо клавишами-стрелками и пробелом.
- Введите с клавиатуры другие числа или буквы, при необходимости удалите существующие символы, помещая их перед вертикальной линией ввода и нажимая клавишу .
Иногда бывает удобнее удалить старую часть формулы и в появившемся ме-стозаполнителе ввести новое имя или число,
Изменение операторов
Для того чтобы удалить оператор, поместите его перед вертикальной линией ввода и нажмите клавишу . В результате оператор либо исчезнет (а операнды слева и справа сольются в одно имя), либо (в сложных формулах) появится местозаполнитель оператора в виде черной рамки. При желании можно удалить и этот местозаполнитель повторным нажатием .
Научный форум dxdy
При вычислении в Mathcad Prime 3.0 величины, которая должна принимать только действительные значения (магнитная проницаемость) получается, что они имеет мнимую часть порядка
и
— действительные числа. Тогда это симметричная матрица, а значит все собственные значения теоретически действительные. А можете показать конкретный пример матрицы, с подставленными числами, который приводит к мнимым числам (мне просто интересно)?Последний раз редактировалось nnosipov 08.04.2014, 10:10, всего редактировалось 1 раз.
Так и должно быть. Это типичная картина, свидетельствующая именно об ошибках округления.
— Вт апр 08, 2014 14:10:28 —

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

ShMaxG, возьмите уравнение , у него три вещественных корня, но Maple выдаст приближённые значения с ненулевой мнимой частью, исчезающей по мере увеличения точности.
Последний раз редактировалось Kitozavr 08.04.2014, 10:14, всего редактировалось 2 раз(а).
Я так понимаю, что
и
— действительные числа.
Да,
— обменный интеграл,
— магнитное поле,
— температура.Я подставил
,
,
, то есть это матрица

Кстати говоря, если в Матлабе взять вектор
и попробовать вычислить 
На рис. 1.10 приведен пример вызова стандартной функции root с двумя аргументами для нахождения корней уравнения sin(x) = 0, график функции/(х) = sin(x) и положение найденного корня.
sin(x) 0 S’
- s := root (f(х), х) /
- s = -6.2х 10″ 7 1 ’ 1 ’ 1 0 1
- -1 х1.2
Рис. 1.10. Использование стандартной функции root для решения нелинейного уравнения sin(x) = 0
Если уравнение неразрешимо, то при попытке найти его корень будет выдано сообщение об ошибке. Кроме того, к ошибке 15
или выдаче неправильного корня может привести и попытка применить метод секущих в области локального минимума или максимума/(х). В этом случае секущая может иметь направление, близкое к горизонтальному, выводя точку следующего приближения далеко от предполагаемого положения корня. Для решения таких уравнений лучше применять встроенную функцию Minerr. Аналогичные проблемы могут возникнуть, если начальное приближение выбрано слишком далеко от настоящего решения или/(х) имеет особенности типа бесконечности.
Иногда удобнее задавать не начальное приближение к корню, а интервал [а, Ь], внутри которого корень заведомо находится. В этом случае следует использовать функцию root с четырьмя
аргументами, а начальное
Рис. 1.11. Поиск корня алгебраического уравнения в заданном интервале
значение х присваивать не нужно. Поиск корня осуществляется в промежутке между а и Ь.
При этом явный вид функции /(х) может быть определен непосредственно в теле функции root. На рис. 1.11 приведен листинг программы с использованием этого варианта функции root.
Когда функция root имеет четыре аргумента, следует помнить о двух ее особенностях:
- — внутри интервала [а, Ь] не должно находиться более одного корня, иначе будет найден один из них (заранее неизвестно, какой именно);
- — значения f(a) и /(/?) должны иметь разный знак, иначе будет выдано сообщение об ошибке.
Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти. На рис. 1.12 приведен пример, в котором уравнение х + 1 = 0, имеющее два чисто мнимых корня, решается два раза с разными начальными значениями.
Для решения этого уравнения второй вид функции root (с четырьмя аргументами) применять нельзя, поскольку /(х) явх:=0.5
гооЦх + 1, х/ = -1 х:=-0.5
rooty X + 1, X/ =1 Рис. 1.12. Поиск мнимого корня
ляется положительно определенной, и указать интервал, на границах которого она имела бы разный знак, невозможно.
Отметим, что f(x) может быть функцией не одного, а любого количества аргументов. Эта возможность проиллюстрирована на рис. 1.13 на примере функции двух переменных /(х, у) = х 2 — у 2 + 3. В самой функции root необходимо определить, относительно какого из аргументов следует решить уравнение. Затем уравнение /(х, 0) = 0 решается относительно переменной х, а потом другое уравнение /(1, у) = 0 — относительно переменной у.
При численном решении уравнений относительно одной из переменных необходимо предварительно определить значения остальных переменных. Иначе попытка решить уравнения приведет к появлению ошибки «This variable or function is not defined above», которая в данном случае будет говорить о том, что другая переменная ранее не определена. Конечно, можно указать значения других переменных непосредственно внутри функции root.
Если функция /(х) является полиномом, то все его корни можно определить, используя встроенную функцию polyroots (v), где v — вектор, составленный из коэффициентов полинома. Поскольку полином N-n степени имеет ровно W корней (некоторые из них могут быть кратными), вектор v должен состоять из 7V+1 элемента. Результатом действия функции poly roots является вектор, составленный из N корней рассматриваемого полинома. На рис. 1.14
Рис. 1.13. Поиск корня уравнения, заданного функцией двух переменных приведен пример решения уравнения f(x) = (х — 13) (х — I) 3 = х 4 —6х 3 + 12х 2 -10х + 3 = 0.
v:=(3 -10 12 -6 1) Т 0.992
- 1.004 + 7.1771 х 10
- 1.004 — 7.177i х 10
Рис. 1.14. Поиск корней полинома
Коэффициенты полинома записаны в виде вектора в первой строке примера. Первым в векторе должен идти свободный член полинома, вторым — коэффициент при х 1 и т.д. Последним (N+1) элементом вектора должен быть коэффициент при старшей степени x N . Во второй строке показано действие функции poly roots. При этом численный метод вместо двух действительных единичных корней дает одинаковые мнимые числа. Однако малая мнимая часть этих корней находится в пределах погрешности, определяемой константой TOL, и не должна вводить пользователей в заблуждение. Необходимо помнить, что корни полинома могут быть комплексными, и ошибка вычислений может сказываться как на действительной, так и на комплексной части искомого корня.
В следующем примере, представленном на рис. 1.15, показано вычисление трех действительных корней полинома /(х) = 6 — 7х + х 3 с понижением порядка полинома.
В этом примере используется вариант функции root с двумя аргументами. Приведенный на рисунке график функции /(х) показывает, что уравнение имеет три действительных корня. Задавая начальное приближение z = -2, находим один из корней полинома: Xi = -3. Затем исходный полином делится на (z — Xi), находим второй корень х2 = 1. Далее функция root еще раз вызывается для нахождения корня полинома первого порядка, по
лучаемого делением исходного полинома на (z-%i) и (z-x2). Для каждого из найденных корней производится проверка — вычисляется невязка уравнения.
Похожие публикации:
- Как обрезать видео в movie maker windows 10
- Как отделяется в mathcad в десятичной дроби дробная часть от целой
- Как открыть telegram в браузере
- Как отформатировать график в mathcad
