8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
            
Раздел: Документация

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 >

i M 1

в.-if

i>0-Z \jV

-if

i<MS \kV

I j=0 ;

1, k = Hl J

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