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

Функция поиска корня нелинейного уравнения – root. Уравнения могут не иметь аналитических решений. Тогда они решаются численными методами с заданной погрешностью. Для простейших уравнений вида F (x) = 0 решение находится с помощью функции root(выражение, имя_переменной). Эта функция возвращает значение переменной, при котором выражение равно 0 с заданной точностью. Можно задать начальное значение переменной, что полезно, если возможно несколько решений.

Задача_1.     Найти корни полинома третьей степени , при значениях коэффициентов , , , .

¿ _1. 1) Задать коэффициенты полинома.

2) Задать полином.

3) Задать начальное значение x:=0.

4) Задать формулу для нахождения первого действительного корня: x1:=root(F(x),x).

5) Вывести значение x1.

6) Два других корня могут оказаться комплексными, поэтому далее необходимо задать . Для поиска второго корня x 2 первый исключается делением F (x) на (x - x 1) (т.е. теперь функция root применяется к функции F (x)/(x - x 1)). Соответственно для поиска третьего корня x 3 F (x) делится еще и на (x - x 2). Найти остальные корни полинома.

Задача_2.      Найти корни многочлена третьей степени , задав начальное приближение x =0.

Функция поиска всех корней многочлена – polyroots. Для поиска корней обычного полинома p (x) степени n MathCAD содержит функцию polyroots(V), которая возвращает вектор всех корней многочлена (полинома) степени n, коэффициенты которого находятся в векторе V, имеющем длину n +1. Не рекомендуется пользоваться этой функцией, если степень полинома выше пятой-шестой, т.к. тогда трудно получить малую погрешность вычисления корней.

Задача_3.   Найдем корни полинома из задачи_1, используя эту функцию.

Задача_4.   Найти корни полинома , при значениях коэффициентов , , , , используя две описанные выше функции.

Задача_5. Используя функцию polyroots найти корни полиномов:

       а) ;          б)

Директива Given для подготовки блока решения уравнения или системы уравнений. При решении систем нелинейных уравнений используется специальный вычислительный блок, открываемый служебным словом – директивой Given – и имеющий следующую структуру:

       Начальные условия (вида var:=value)

       Given

                   Уравнения (вида expr_left = expr_right)

                   Ограничительные условия

                   Выражения с функциями Find, Minerr, Maximize и Minimize

& Начальные условия определяют начальные значения искомых переменных. Они задаются обычным присваиванием переменным заданных значений. Если переменных несколько, то используется векторное представление для начальных условий. Уравнения задаются в виде expr_left = expr_right с применением жирного знака равенства (палитра Boolean) между левой и правой частью каждого уравнения. Ограничительные условия обычно задаются в виде неравенств или равенств, которые должны удовлетворяться при решении системы уравнений.

В блоке используется одна из следующих двух функций:

       Find(v1,v2,...,vn) – возвращает значение одной или ряда переменных для точного решения. Эта функция используется, когда решение реально существует (при решении системы уравнений – графики функций пересекаются).

       Minerr(v1,v2,...,vn) – возвращает значение одной или ряда переменных для приближенного решения (при решении системы уравнений – графики функций не имеют общих точек). Эта функция пытается найти максимальное приближение к несуществующему решению путем минимизации среднеквадратичной погрешности решения.

 

Задача_6.   Решить уравнение x 2 = 3.

¿ _6. 1) Задать начальное значение для поиска: присвоим переменной x значение 10.

2) Откроем блок словом Given.

3) Запишем уравнение, используя жирный знак равенства.

4) Присвоим x0:=Find(x).

5) Выведем x0. Решить это же уравнение, используя функцию Minerr.

Задача_7.    Используя функцию Given решить уравнения:

       а) ;           б) .


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: