Решение систем уравнений в MathCad
Для решения уравнений в Mathcad можно воспользоваться двумя способами. Эти способы были частично рассмотрены в разделе «Решение уравнений»:
Использование метода Given — Find:
В рабочем поле mathcad записываем слово Given. Это служебное слово. Оно подключает определенные программные модули mathcad для обработки исходных данных, необходимых для решения системы уравнений численными методами.
Затем указывается начальное приближение для искомых переменных. Это нужно для увеличения скорости и точности решения системы. Если начальное приближение не задать, то mathcad по умолчанию примет его равным нулю для всех переменных, при этом, если окажется, что система имеет несколько решений, то есть риск не определить все корни. Поэтому лучше всегда задавать приближение
Рис. 1. Ввод исходных данных в поле mathcad
Далее вводятся уравнения. Их можно записать в явном или неявном виде. Само уравнение набирается с клавиатуры вручную с использованием панели Calculator. Из этой панели можно взять основные математические операции: дроби, тригонометрию, факториалы и прочее. Уравнение нужно записывать с использованием логического символа «ровно». На панели Boolean он выделен жирным шрифтом (см. рис. 2)
Рис. 2. Панели Boolean и Calculator
Когда уравнения записаны вводится функция Find(x, y, z. ) (где х, y, z. — переменные). Это функция, которая возвращает результат решения системы. Значение функции Find() можно присвоить какой-либо переменной с помощью символа «:=» и использовать ее далее в расчетах (см. рис. 3). При решении систем уравнений в mathcad результатом всегда будет являтся матрица значений
Рис. 3. Ввод функции Find()
Для того чтобы увидеть результат решения системы уравнений, после Find(x, y, z. ) следует поставить символ «→» либо «=» из панели Evaluation (см. рис. 4).
Рис. 4. Панель «Evaluation»
В зависимости от сложности системы через определенное время MathCad выведет результат. На рис. 5 можно рассмотреть синтаксис и результат решения системы уравнений. Обратите внимание, что можно присваивать результат решения системы матричной переменной и можно работать с отдельными ее элементами
Рис. 5. Результат численного решения системы уравнений
Mathcad позволяет решать системы уравний в символьном виде. Обычно это полезно, когда требуется получить не точное значение переменных, а их выражения через константы. Например, если мы заменим все числовые константы на неизвестные параметры и решим уравнение относительно x, y и z, то результат выведется в символьном виде (см. рис. 6). Причем, обратите внимание, что в данном случае нам не нужно вводить начальное приближение и мы должны использовать символ «→» для вывода результата. Как правило, символьное решение получается громоздким, поэтому не всегда рекомендуется использовать этот метод
Рис. 6. Результат символьного решения системы уравнений
Использование метода Solve:
Как показывает практика, методом solve иногда удается решить системы уравнений, которые не поддаются решению с помощью функции Find()
Синтаксис следующий: на панели matrix нажимаем иконку Matrix or Vector и в появившемся окне указываем количество уравнений входящих в систему. В нашем примере их будет три (см. рис. 7)
Рис. 7. Создание матрицы для метода SOLVE
Заполняем систему, вводя последовательно все уравнения используя логический символ «ровно» из панели Boolean. Каждый элемент матрицы-столбца содержит одно уравнение (см. рис. 8)
Рис. 8. Ввод системы уравнений для метода SOLVE
Когда все уравнения введены, убедитесь, что курсор ввода находится в вашей матрице и затем нажмите кнопку «solve» из панели Symbolic. Появится служебное слово (функция) solve. Далее поставте запятую и введите последовательно все переменные, относительно которых необходимо решить систему уравнений (см. рис. 9)
Рис. 9. Синтаксис метода SOLVE для решения систем
Уведите курсор в свободное поле mathcad и дождитесь окончания решения системы. Обратите внимание, что мы не вводили начальные приближения. Даный метод их назначает автоматически. Обратите так же внимание, что для решения системы в символьном виде синтаксис аналогичен (см. рис. 10)
Рис. 10. Синтаксис метода SOLVE для решения систем
Как показывает моя инженерная практика, решение систем в символьном виде сопряжено с большими вычислительными трудностями. То есть иногда решение системы занимает массу времени, и в итоге mathcad выдает выражение для одной переменной непомерной длины, которое нельзя использовать. Поэтому рекомендуется прменять эту возможность лишь в крайних случаях и по возможности «помогать» mathcad, заменяя константы известными числовыми значениями

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.
Форма обратной связи
Поделиться
Статистика
- © student-engineer.pro :: Semen Kuptcov
Lsolve в маткаде что это
Функции > Решение и оптимизация > Пример. Решение системы линейных уравнений
Пример. Решение системы линейных уравнений
Решите систему n линейных уравнений с n неизвестными с использованием функции lsolve или с помощью блоков решения
Использование lsolve
1. Предположим, что имеется следующий набор уравнений (определенных с помощью оператора «равно»):

2. Задайте несингулярную матрицу, соответствующую данной системе уравнений:

3. Задайте вектор из констант, соответствующий данной системе уравнений.

4. Используйте функцию lsolve для поиска решения:


Использование блоков решения
Вышеприведенную систему уравнений также можно решить с помощью блока решения.
Если представить систему в виде матрицы, умноженной на неизвестный вектор X, то необходимо найти решение одновременно для всех переменных в векторе. В такой формулировке ни один из элементов вектора нельзя представить в виде константы.
1. Задайте вектор начальных приближений X:


2. Вставьте блок решения, а затем используйте функцию find для решения заданной системы уравнений:

В вектор начальных приближений X должен быть определен выше и за пределами блока решения.
Блоки решения — решения для матриц
1. Задайте набор алгебраических уравнений Риккати (из теории систем и управления):



2. Задайте матрицу начальных приближений как единичную матрицу:

3. Используйте функцию find для решения заданного набора уравнений:

Единицы измерения в блоках решения
1. Задайте V1 , V2 и V3 значение 1 вольт:



2. Задайте и решите систему уравнений с тремя неизвестными:
Lsolve в маткаде что это
• lsolve(M, v) — возвращает решение x для линейной системы уравнений M·x = v с использованием LU -разложения.
• M — матрица из действительных или комплексных значений. Если матрица квадратная, она должна быть несингулярной.
• v — действительный или комплексный вектор или матрица, имеющая такое же число строк, как и M .
Дополнительные сведения
• Матрица называется сингулярной, если ее определитель равен 0. Она близка к сингулярной, если имеет большое число обусловленности. Эти условия затрудняют вычисление обратной матрицы, используемой для решения задачи. В этих случаях функция lsolve может завершить вычисления с ошибкой или вернуть неправдоподобные результаты. Для матриц, близких к сингулярным, могут потребоваться другие разложения.
• В функции lsolve используется алгоритм, описанный в книге Press, W. H., et. al., Numerical Recipes in C: The Art of Scientific Computing (Численные методы на языке C: искусство научных расчетов), second ed., Cambridge University Press, Cambridge, 1992 . Для LU -разложения используются библиотеки BLAS/LAPACK от Intel.
• Чтобы узнать, имеет ли система уникальное решение, нужно проверить, выполняется ли условие: rank(M) = cols(M) , т. е. являются ли все столбцы матрицы M линейно независимыми.
• Для решения такого типа системы можно воспользоваться непосредственно обращением матрицы, но функция lsolve работает быстрее и в некоторых случаях дает более высокую точность. Чтобы решить линейную систему уравнений в естественной записи, может потребоваться использование блока решения.
• В случае несовместимой системы уравнений функция lsolve возвращает решение системы уравнений методом наименьших квадратов, получаемое также из geninv(M)·v .
8.1.2. Функция lsolve MathCAD 12 руководство
В функции isolve запрограммирован численный метод LU -разложения (см. разд. 8.3.3), основанный на алгоритме последовательных исключений Гаусса. Он состоит в преобразовании матрицы А линейной системы к треугольному виду, т. е. к форме, когда все элементы ниже главной диагонали матрицы являются нулевыми (с/и. разд. 8.3.1). Точнее, исходная СЛАУ Ах=b заменяется эквивалентной системой с другой матрицей А* и другим вектором правых частей b* , но имеющей то же решение, что и исходная система. Очень важно заметить, что результат, выдаваемый методом Гаусса, является точным (конечно, с поправкой на неизбежно присутствующие ошибки численного округления, которые, в случае хорошо обусловленной матрицы А, являются ничтожными). Таким образом, в противоположность применению вычислительного блока Given/Find (в основе которого лежит приближенный итерационный алгоритм), функция isolve не нуждается в присвоении начальных значений вектору x .
Применение функции isolve показано в листинге 8.4. При этом матрица А может быть определена любым из способов, необязательно явно, как во всех примерах этого раздела. В последней строке листинга осуществляется вычисление нормы невязки, которая оказывается равной нулю. Заметим, что встроенную функцию isolve допускается применять и при символьном решении СЛАУ (листинг 8.5). В последнем случае в уравнениях допускается использовать параметры (т. е. имена переменных, которым не присвоены никакие значения).
Листинг 8.4. Численное решение СЛАУ
Листинг 8.5. Символьное решение СЛАУ ( продолжение листинга 8.4 )
