Решение нелинейных уравнений в системе Matlab.pptx
- Количество слайдов: 24
Решение нелинейных уравнений в системе Matlab Морева Галина 12 БИ-1 НИУ ВШЭ НФ 2012
Цели: 1. Научиться решать в Matlab алгебраические и трансцендентные уравнения 2. Ознакомление с такими функциями как fzero, poly, roots и solve 3. Изучение нелинейных систем уравнений и их решение
Алгебраические уравнения Любое уравнение вида Р(х)=0 называется алгебраическим уравнением (полиномом) относительно переменных Х. Такое уравнение можно записать в виде: а 0 хn+ a 1 xn-1 + … + аn-1 х+аn=0 а 0 ≠ 0, n ≥ 1, аi - коэффициент уравнения
В Matlab полином задается и хранится в виде вектора, элементами которого являются коэффициенты от a 0 до an
Функции для действий над полиномами conv(p 1, р2) - вычисляет произведение двух полиномов; deconv(pl, р2) -осуществляет деление полинома p 1 на полином р2 polyval(p 1, х) - вычисляет значение полинома с коэффициентами p 1 в точке х; polyder (p 1 [, р2]) - вычисляет производную от полинома
Функция roots(p) Решить алгебраическое уравнение в Matlab можно при помощи встроенной функции roots(p). Она формирует вектор, элементы которого являются корнями полинома с коэффициентами “p” Общий вид: r = roots(p), где p=[p 1 p 2. . . pn pn+1]
Вычислим корни полинома: p(x) = x 3 + 3 x 2 + 5 x +7 p = [1 3 5 7] r = roots(p) Результат:
Графическое решение x=-1: 0. 1: 3; y=polyval(p, x); plot(x, y, '-k'), grid
Функция poly(A) Функция p = poly(A), где A - матрица порядка n, вычисляет вектор-строку коэффициентов полинома p(s) = det(s. I - A) = p 1 sn + p 2 sn-1 +. . . + pns + pn+1 Функция p = poly(r), где r - векторстолбец корней некоторого полинома, вычисляет вектор-строку коэффициентов этого полинома.
Рассмотрим рациональную матрицу А, вычисляя коэффициенты характеристического полинома, его корни и по ним вновь восстановим этот полином
A=[-5/3 -1 -2/3; -5/6 1/4 11/12; 1/6 17/4 -19/12] p=poly(A) r=roots(p) p=poly(r)
Результат
Трансцендентные уравнения Трансцендентное уравнение — это уравнение вида f(x)=g(x) , где функции f и g являются аналитически ми функциями
В уравнениях данного вида число корней может быть любым, их также может быть бесконечно много. Для этого можно привести простой пример, в котором требуется найти корни уравнения: sin. X – 1/x=0
Построим графики в Matlab с помощью функции fplot: figure axes fplot('1/x', [-20 -0. 5]) hold on fplot('1/x', [0. 5 20]) fplot('sin(x)', [-20 20], 'r') grid on
Функция fzero Функция z = fzero(‘<имя функции>‘, x 0) находит нуль функции в окрестности точки x 0. Функция z = fzero(‘<имя функции>‘, x 0, tol) возвращает результат с относительной погрешностью tol, задаваемой пользователем. По умолчанию tol = eps. Функция z = fzero(‘<имя функции>‘, x 0, tol, trace) позволяет выдавать на экран терминала промежуточные результаты поиска нуля функции.
Рассчитать π с помощью нахождения нуля функции sin при x 0=3. x = fzero(@sin, 3) Результат: x= 3. 1416
Найти нуль функции cos между 1 и 2 x = fzero(@cos, [1 2]) Результат: x= 1. 5708
Решение систем уравнений В MATLAB систему нелинейных уравнений решает функция solve(). Решим данную систему уравнений:
syms x y; solve(‘a*x+b/y=2’, ‘b/x+a*y= 2*a*b’) syms x y – создание символьных матриц
Спасибо за внимание
Решение нелинейных уравнений в системе Matlab.pptx