Содержание
-
Решение нелинейных уравнений в системе Matlab
Морева Галина 12БИ-1 НИУ ВШЭ НФ 2012
-
Цели:
Научиться решать в Matlab алгебраические и трансцендентные уравнения Ознакомление с такими функциями как fzero, poly,roots и solve Изучение нелинейных систем уравнений и их решение
-
Алгебраические уравнения
Любое уравнение вида Р(х)=0 называется алгебраическим уравнением (полиномом) относительно переменных Х. Такое уравнение можно записать в виде: а0хn+ a1xn-1 + … + аn-1х+аn=0 а0 ≠ 0, n ≥ 1, аi - коэффициент уравнения
-
В Matlab полином задается и хранится в виде вектора, элементами которого являются коэффициенты от a0до an
-
Функции для действий над полиномами
conv(p1, р2) - вычисляет произведение двух полиномов; deconv(pl, р2) -осуществляет деление полинома p1 на полином р2 polyval(p1, х) - вычисляет значение полинома с коэффициентами p1 в точке х; polyder (p1 [, р2]) - вычисляет производную от полинома
-
Функция roots(p)
Решить алгебраическое уравнение в Matlab можно при помощи встроенной функции roots(p). Она формирует вектор, элементы которого являются корнями полинома с коэффициентами “p” Общий вид: r = roots(p), где p=[p1 p2 ... pn pn+1]
-
Вычислим корни полинома:p(x) = x3 + 3x2 + 5x +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) p(s) = det(sI - A) = p1sn + p2sn-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 являются аналитическими функциями
-
В уравнениях данного вида число корней может быть любым, их также может быть бесконечно много. Для этого можно привести простой пример, в котором требуется найти корни уравнения: sinX – 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(‘‘, x0) находит нуль функции в окрестности точки x0. Функция z = fzero(‘‘, x0, tol) возвращает результат с относительной погрешностью tol, задаваемой пользователем. По умолчанию tol = eps. Функция z = fzero(‘‘, x0, tol, trace) позволяет выдавать на экран терминала промежуточные результаты поиска нуля функции.
-
Рассчитать π с помощью нахождения нуля функции sin при x0=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’) symsx y – создание символьных матриц
-
-
Спасибо за внимание
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.