Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика рейтинг 3.doc
Скачиваний:
38
Добавлен:
20.09.2019
Размер:
189.95 Кб
Скачать

14.Решение в среде matlab нелинейных уравнений и слау

Для решения системы линейных алгебраических уравнений в виде

[A];[X] = [B] (12.6.1)

Используется математическое выражение

[X] = [A]-1 ; [B] (12.6.2)

где [A]-1 – обратная матрица [A]

В среде MATLAB для записи выражения (12.7.2) используется синтаксис

Вектор_X = матрица_A \ вектор_B

Пример решения СЛАУ классическим матричным методом в MATLAB

X1=A\B

Для решения СЛАУ (12.7.1) методом LU-разложения в MATLAB используется

соотношение вектор_X = матрица_U \ (матрица_L \ вектор_B (12.6.3)

где матрица_U – верхняя треугольная матрица U результата LU-разложения

матрица_L – нижняя треугольная матрица L результата LU-разложения

LU-разложение в MATLAB выполняется с помощью функции lu в следующем формате

[матрица_L, матрица_U, матрица_перестановок]=lu(матрица)

Пример решения СЛАУ в среде MATLAB методом LU-разложения

[L,U,P]=lu(A)

X2=U\(L\B)

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

Решение нелинейного уравнения вида

F(x)=0 (12.6.4)

в среде MATLAB выполняется с помощью функции fzero в следующем формате

[решение, значение_функции, флаг_успеха, параметры]=fzero(‘выражение’,xо)

где решение – значение переменной с искомым корнем;

значение_функции – значение функции в точке искомого корня;

флаг_успеха – перменная успешности окончания расчета (12.6.1);

параметры – параметры результатов численного решения;

выражение – символьное выражение левой части (12.6.3), записанное с учетом

правил MATLAB; x0 – точка аргумента начала поиска.

При решении допускается сокращать число параметров решения до одного –

корня. Тогда формат [решение] = fzero(‘выражение’, xо)

Пример решения выражения f(x)=x2-1 с начальной точкой x =2

[x,f.ex1,opt]=fzero('x^2-1',2)

или упрощенная форма

[x]=fzero('x^2-1',2)

Подробное описание функции fzero MATLAB:

1) fzero(@fun,x) — возвращает уточненное значение х, при котором

достигается нуль функции fun, представленной в символьном виде, при начальном

значении аргумента х;

2) fzero(@fun,[xl x2]) — возвращает значение х, при котором fun(x)=0 с

заданием интервала поиска с помощью вектора x=[xl х2], такого, что знак fun(x(D)

отличается от знака fun(x(2)). Если это не так, выдается сообщение об ошибке.

3) fzero(@fun,x.tol) — возвращает результат с заданной погрешностью tol;

4) fzero(@fun,x.tol .trace) — выдает на экран информацию о каждой итерации;

5) fzero(@fun,х.tol .trace,Р1.Р2,...) — предусматривает дополнительные

аргументы, передаваемые в функцию fun(x.Pl,P2,...). При задании пустой матрицы

для tol или trace используются значения по умолчанию.

6) fzero(fun,x,[ ],[ ],Р1). Для функции fzero ноль рассматривается как

точка, где график функции fun пересекает ось х, а не касается ее.