![]() ![]() ![]() ![]() ![]()
Раздел: Документация
0 ... 95 96 97 98 99 100 101 ... 177 Jacobi(A(B,L,TOL): (x«-L N«-rows(A)-I М «-cols(A) - 1) N while 1-й ч for i а 0.. N м У а. .х.-а i-o <TOL * М + 1
1.1 Проверку того, насколько хорошо работает функция Jacob!, проведите самостоятельно. Из встроенных средств Mathcad итеративный алгоритм для решения СЛАУ применяет блок Given-Find (в настройках функции find должен быть активирован пункт Linear). Данным алгоритмом является широко известный симплекс-метод. В своей классической формулировке симплекс-метод используется не для решения СЛАУ, а для поиска экстремумов линейных функций (задачи линейного программирования). Однако если немного преобразовать СЛАУ, то симплекс-метод может быть применен и для определения корней системы линейных уравнений. Ввиду того что симплеке-метод не является специализированным средством решения СЛАУ, корни он, как правило, находит менее точно, чем функция tsolve. Кроме того, он может и не сойтись к решению, что происходит довольно часто. Поэтому единственным преимуществом блока Given-Find в случае решения СЛАУ является то, что система уравнений может быть записана не в матричной, а в естественной форме 8.2.2. Аналитическое решение систем нелинейных уравнений С помощью символьного процессора Mathcad можно получить аналитическое решение системы уравнений. Сделать это можно двумя способами. Во-первых, можно воспользоваться оператором solve (решить). В этом случае система должна быть внесена в его левый маркер в виде вектора. Переменные, значение которых должно быть найдено, следует ввести через запятую в правый маркер оператора solve. Ответ будет возвращен в виде матрицы, в строках которой будут записаны корни найденных решений. Их порядок будет таким же, каким был порядок соответствующих переменных в правом маркере оператора solve. Пример 8.26. Решение системы уравнений с помощью операторе solve [ y*u + v - - v = 2 \>J\x + v - \J\i-V ™ g solve,u,v (41 40) Во-вторых, МОЖНО использовать так называемый вычислительный блок. Вычислительным блоком в Mathcad мы будем называть систему из вводного слова (Given (Дано)) И функции той или иной математической операции (например, Find - решение систем уравнении, Odesolve — решение систем дифференциальных уравнений, Мтпегг — поиск точки минимальной невязки системы). Чтобы решить систему уравнений с помощью вычислительного блока, выполните следующую последовательность действий. 1.Наберите вводное слово Given. 2.Строго под вводным словом задайте систему уравнений. Делается это, в отличие от случая использования оператора solve, точно также, как при ее решении на бумаге. В качестве знаков равенства следует использовать логическое равенство (Bote! Equal — Ctn+=). Если система приведена к стандартному виду, то, аналогично поиску корней одиночных уравнений, можно определить лишь левые части ее уравнений. 3.Введите функцию решения систем уравнений ftnd(xl,x2,...). В скобках через запятую задайте переменные втом порядке, в котором должны быть расположены в ответе соответствующие им корни. 4.В качестве оператора вывода результата работы функции rTnd(xl,x2,...) используйте оператор символьного вывода <-*»-. Если же вы примените оператор численного вывода то для решения системы, при условии добавления начальных приближений, будет запущен один из численных алгоритмов, Пример 8.27. Решение системы ураннений с помощью вычислительного Существенных различий между решением системы уравнений с помощью оператора solve и вычислительного блоки Given-Find нет. Однако есть небольшая, но совсем неочевидная разница в форме представления результата. Она заключается в том, что значения корней, относящиеся к одному решению, в случае использования вычислительного блока располагаются в столбцах, а при применении оператора solve — в строках матрицы ответа. Если этого не знать, то можно очень легко запутаться и сделать ошибку (особенно если количество решений и переменных совпадает). Пример 8.28. Различия в форме ответа при использовании оператора solve и вычислительного блока Решаем систему с использованием оператора solve: блока GIVEN \}х + у + \/у + г «3 ![]() ![]() i3 х+у=1 > ,Зх2-2+у = 0, 6 б б ![]() solve, х, у —» V б б - + - 6 6 ![]() Решаем систему с помощью блока Given- Find: Given х.+ у = 1 Зх - 2 + у = О find(x,y) 6 6 6 6 V б б 6 6, Mathcad может решать самые разнообразные системы. Лучше Всего решаются системы алгебраических уравнений, хуже всего - системы, содержащие сильно разнородные по своей природе функции (например, экспоненту и синус). Неплохо справляется Mathcad и с системами алгебраических урнпнеиий с параметрами. В общем же, трудности, которые связаны с видом уравнений при решении систем, очень схожи с аналогичными проблемами при поиске корней одного уравнения, о которых весьма подробно говорилось в начале главы, поэтому останавливаться на этом вопросе не будем. Приведем лишь несколько примеров решения и Mathcad систем различных типов. Пример 8.2d. Аналитическое решение систем нелинейных уравнений различных типов Система алгебраически* уравнений с. параметрами: х I- у + z = О сх+ а-у + bz = 0 222 2 2 2 (х + Ъ) + (у + с) + (z + а) = а -+ b * с Система логарифмических уравнений: ( 00 0 \ solve ,x,y,z -b + a -с + Ъ c-aj log[i(x+ у)2] * i legfy) -log(x[)=log(2) solve ,x,y ( 10 20 -10 20 Система тригонометрических уравнений: 2.2 1 cos(x) f cos(y) = -4 x+ у =- 6 solve, x,y (\ 1 —Jt—71 32 4-1 —ТЕ--Л 3 2 1i —n —n 23 3-2 -7t--Л 0 ... 95 96 97 98 99 100 101 ... 177 |