Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.16.2. Решение некоторых типовых задач линейной алгебры и аналитической геометрии.

В общем случае традиционный для операции деления знак «/» (а также знак «\») закреплен в системе MATLAB за решением известной задачи линейной алгебры – решением системы линейных алгебраических уравнений (СЛАУ). Пусть, например, требуется решить СЛАУ вида Ax=b, где A – заданная квадратная матрица коэффициентов СЛАУ N-го порядка; b – заданный вектор правых частей СЛАУ (вектор-столбец) N-го порядка; x – вектор неизвестных (вектор-столбец) N-го порядка. Тогда для нахождения последнего достаточно вычислить выражение A\b, например:

>> A=[2 -3 1; 1 2 -6; 5 1 1]

A =

2 -3 1

1 2 -6

5 1 1

>> b=[-1; -10; 3]

b =

-1

-10

3

>> x=A\b

x =

0.0000

1.0000

2.0000

В параграфах 2.14 и 2.15 рассматривались функции, предназначенные для создания массивов и изменения их структуры, однако и помимо них система MATLAB включает огромное количество функция для обработки элементов массивов. Это, в частности, функции, позволяющие вычислить сумму или произведение элементов массива, отсортировать элементы массива заданным образом, отыскать минимальные и максимальные значения элементов массивов. Полный список функций обработки данных можно отобразить на экране монитора посредством команды help datafun.

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

>> x=[1 2 3]

x =

1 2 3

>> y=[3 2 1]

y =

3 2 1

>> z=cross(x,y)

z =

-4 8 -4

Скалярное произведение векторов вычисляется с использованием функции общего назначения sum, вычисляющей сумму всех элементов вектора (для матрицы эта функция вычисляет суммы для всех столбцов). Ввиду того, что скалярное произведение равно сумме произведений соответствующих координат (элементов) векторов, то для его вычисления можно использовать команду

>> s=sum(x.*y)

s =

10

Также для вычисления скалярного произведения можно использовать функцию dot:

>> s=dot(x,y)

s =

10

Заметим, что при использовании функции dot исходные векторы могут быть заданы в виде строк, столбцов, либо в виде строки и столбца:

>> c=dot(x',y)

c =

10

Длина вектора определяется посредством вычисления скалярного произведения и использования функции извлечения квадратного корня:

>> dl=sqrt(sum(x.*y))

dl =

3.1623

или применения функции norm:

>> dlx=sqrt(sum(x.*x))

dlx =

3.7417

>> dlx=norm(x)

dlx =

3.7417

Косинус угла между векторами вычисляется как частное от деления скалярного произведения векторов на произведение их длин. В результате, очевидно, можем найти сам угол между векторами:

>> dlx=norm(x)

dlx =

3.7417

>> dly=norm(y)

dly =

3.7417

>> phi=acos(dot(x,y)/(dlx*dly))

phi =

0.7752

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]