Средства MathCad для решение нелинейных уравнений



Процесс нахождения приближенного корня уравнения f(x) = 0состоит из двух этапов: отделение корней и уточнение корней. На этапе отделения корней решается задача отыскания возможно узких отрезков [a; b], в которых содержится один корень. При этом необходимо, чтобы функция f(x) на каждом отрезке [ai; bi] должна быть непрерывной и монотонной, а на концах отрезка принимать значения разных знаков. MathCad представляет ряд дополнительных возможностей для поиска корней уравнений. Функция root(f(var1, var2, ...),var1, [a;b]) имеет два необязательных аргумента a и b, которые определяют границы интервала, на котором следует искать корень. Задавать начальное приближение для корня необязательно. В данном варианте функция root использует алгоритм Риддера (в основу которого положен метод хорд) и Брента. Метод Брента соединяет быстроту метода Риддера и гарантированную сходимость метода деления отрезка пополам. Продемонстрируем использование расширенного варианта поиска корней на примере решения уравнения .

Для оценки местоположения корней построим график этой функции

              

В следующем примере проведено отделение корня для уравнения
x– sin(x) - 0.25 = 0, а затем с помощью встроенной функции rootнайдено значение корня с точностью TOL = 0.001. Это значение переменная TOL принимает по умолчанию. Если требуется изменить точность вычислений, то переменную TOL следует переопределить (например, TOL:=0.00001). В нашем примере, поскольку границы изменения х не заданы, то функция root возвращает первый вычисленный корень.

                                                                                    

Если уравнение имеет несколько корней, то для их нахождения можно использовать разложение функции f(x) на простые множители f(x)=(x-x1)(x-x2) …(x-xn), где x1, x2, …, xn - корни уравнения. Начальное приближение можно задать только для первого корня, а в качестве функции взять, например,

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

Рассмотрим пример решения нелинейного уравнения, имеющего несколько корней, часть из которых мнимые.

                 

Решение систем нелинейных уравнений

Для решения системы нелинейных уравнений (СНУ) необходимо задать начальные приближения для всех переменных, входящих в систему. В MathCad решение СНУ требует использования вычислительного блока, начало которого отмечается ключевым словом Given. Для записи СНУ вместо ввода традиционного знака равно (=) вставляется жирный знак равенства – оператор отношения, расположенный на палитре «Логические». Если по условию задачи существуют ограничения на поиск решения, то они задаются в виде неравенств (например: a<x<b). Решение СНУ находится с помощью функции Find(x,y,z), где x, y, z – список переменных.

Пусть требуется решить систему нелинейных уравнений при начальных условиях: x0=1; y0=1; z0=1         

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

Пример решения СНУ в матричной форме путем обращения матрицы коэффициентов: Пример решения СНУ с использованием функции Find:  

Если СНУ не имеет точного решения, то вместо функции Find следует использовать функцию Minner, поскольку в этом случае функция Find указывает на ошибку, функция Minner находит минимум невязки, и возвращает значение аргумента, соответствующее минимальному расхождению между заданным значением y и y(x).

 


Дата добавления: 2018-05-12; просмотров: 1319; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!