Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ЧИСЛЕННЫЕ МЕТОДЫ И ОБРАБОТКА ДАННЫХ



Система MATLAB имеет функции, предназначенные для реализации алгоритмов типовых численных методов решения прикладных задач и обработки данных.

 

Решение систем линейных алгебраических уравнений.

Система линейных уравнений обычно решается с помощью операторов правого ‘ / ’ и левого ‘ \ ’ деления:

 

· выражение X=B/A дает решение ряда систем линейных уравнений AX=B, где A – матрица размером mxn и B – матрица размером nxk;

· выражение X=B\A дает решение ряда систем линейных уравнений XA=B, где A – матрица размером mxn и B – матрица размером nxk;

 

В дальнейших примерах будем использовать две матрицы A и B размером 3x3:

матрицу Паскаля –

 

A = pascal(3)

A =

1 1 1

1 2 3

1 3 6

и магическую матрицу –

 

B = magic(3)

B =

8 1 6

3 5 7

4 9 2

 

а также два вектора: вектор-столбец u = [3; 1; 4] и вектор-строку v = [2 0 -1].

 

Обычно система уравнений имеет квадратную матрицу A и единственный вектор-столбец правой части b. Вектор решения x = A\b имеет тот же размер, что и вектор b. Например,

 

x = A\u

x =

-12

 

Проверка подтверждает, что произведение A*x равняется вектору u.

Если матрицы A и B являются квадратными и имеют одинаковый размер, то решение является квадратной матрицей такого же размера:

 

X = A\B

X =

19 -3 -1

-17 4 13

6 0 -6

 

В рассмотренных примерах найденное решение совпадает с точным, поскольку определитель матрицы A равен единице, а ее элементы являются целыми числами.

 

Квадратная матрица A называется сингулярной, если ее столбцы являются линейно зависимыми. Решение системы уравнений с сингулярной матрицей либо не существует, либо является неединственным. Попытка решить систему с сингулярной матрицей приведет к сообщению об ошибке. Если же матрица системы близка к сингулярной, то MATLAB сгенерирует соответствующее предупреждение.

 

Переопределенные системы уравнений часто возникают в задачах приближения табличной функции, значения которой получены в ходе физических или численных экспериментов. Рассмотрим пример. Пусть значения функции y известны в моменты времени t и задаются таблицей:

 

y 0.82 0.72 0.63 0.6 0.55 0.5
t 0.0 0.3 0.8 1.1 1.6 2.3

 

Эти данные можно ввести с помощью операторов:

 

t = [0.3.8 1.1 1.6 2.3] '; y = [.82.72.63.60.55.50] ';

 

Будем искать приближение табличной функции в виде . Из этой формулы следует, что вектор y разыскивается в виде линейной комбинации вектора с единичными компонентами и вектора с компонентами exp(-t). Неизвестные коэффициенты и находятся по методу наименьших квадратов на основе минимизации второй нормы векторов невязок. Построим матрицу системы и найдем вектор решения:

 

E = [ones(size(t)) exp(-t)]

E =

1.0000 1.0000

1.0000 0.7408

1.0000 0.4493

1.0000 0.3329

1.0000 0.2019

1.0000 0.1003

 

c = E\y

c =

0.4760

0.3413

Таким образом, аппроксимирующая функция имеет вид: .

Нарисуем график аппроксимирующей кривой вместе с исходными табличными данными:

 

T = (0: 0.1: 2.5) ';

Y = [ones(size(T)) exp(-T)]*c;

plot(T, Y, ' - ', t, y, ' o ' )

 

Из рисунка видно, что табличные данные, представленные на графике кружками, достаточно хорошо аппроксимируются кривой.

 

Рассмотрим решение системы с недоопределенной матрицей. Решение такой системы не бывает единственным. MATLAB находит частное решение, которое имеет m ненулевых компонент ( m – ранг матрицы), но и оно не является единственным. Частное решение определяется с помощью алгоритма QR факторизации с выбором ведущего элемента по столбцу. Рассмотрим пример:

 

R = fix(10*rand(2, 4))

R =

6 8 7 3

3 5 4 1

b = fix(10*rand(2, 1))

b =

Линейная система Rx = b состоит из двух уравнений относительно четырех неизвестных. Решение такой системы удобно выводить на экран в рациональном формате:

 

Format rat

p = R\b

p =

5/7

-11/7

Для того чтобы найти общее решение переопределенной системы, надо к частному решению добавить фундаментальную систему решений. Фундаментальная система решений находится с помощью оператора null:

 

Z = null(R, ' r ' )

Z =

-1/2 -7/6

-1/2 1/2

1 0

0 1

Необязательный параметр ‘r’ отвечает за рациональное представление базисных векторов. Общее решение исходной системы можно представить в следующем виде: x = p + Z*q, где q – произвольный вектор.

 


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 461; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь