
- •Приложение 4. Элементарные математические функции
- •Приложение 5. Элементарные матрицы и операции над ними
- •Приложение 8. Анализ данных и преобразование Фурье
- •Справочник по базовым функциям
- •Общие свойства и возможности рабочего стола MATLAB
- •Клавиша
- •Действие
- •Рис. 3. Общий вид Окна Просмотра Рабочего Пространства
- •Операции с файлами
- •Дуальность (двойственность) команд и функций
- •Сложение и вычитание матриц
- •Векторное произведение и транспонирование матриц
- •Произведение матриц
- •Index exceeds matrix dimensions
- •Двоеточие (Colon)
- •Решение систем линейных уравнений
- •Квадратные системы
- •Переопределенные системы
- •Недоопределенные системы
- •Обратные матрицы и детерминанты
- •Псевдообратные матрицы
- •Степени матриц и матричные экспоненты
- •Положительные целые степени
- •Поэлементное возведение в степень
- •Вычисление корня квадратного из матрицы и матричной экспоненты
- •Диагональная декомпозиция
- •Дефектные матрицы
- •Сингулярное разложение матриц
- •Для матрицы
- •Полиномы и интерполяция
- •Полиномы и действия над ними
- •Обзор полиномиальных функций
- •Функция
- •Описание
- •Представление полиномов
- •Корни полинома
- •Вычисление значений полинома
- •Умножение и деление полиномов
- •Вычисление производных от полиномов
- •Аппроксимация кривых полиномами
- •Разложение на простые дроби
- •Интерполяция
- •Обзор функций интерполяции
- •Функции
- •Описание
- •2. Интерполяция на основе быстрого преобразования Фурье _
- •Основные функции обработки данных
- •Матрица ковариаций и коэффициенты корреляции
- •Конечные разности
- •Функция
- •Описание
- •Отсутствующие значения
- •Программа
- •Описание
- •Полиномиальная регрессия
- •Графический интерфейс подгонки кривых
- •Уравнения в конечных разностях и фильтрация
- •Многомерные Массивы
- •Создание Многомерных Массивов
- •Создание массивов с использованием индексации
- •Удаление поля из структуры
- •Создание функций для операций над массивами структур
- •Основные части синтаксиса М-функций
- •Комментарии
- •Как работает функция
- •Определение имени функции
- •Что происходит при вызове функцию
- •Распаковка содержимого функции varargin
- •Локальные и глобальные переменные
- •BETA = 0.02
- •Операторы
- •Описание
- •Операторы
- •Описание
- •Оператор
- •Описание
- •AND (логическое И)
- •OR (логическое ИЛИ)
- •NOT (логическое НЕ)
- •Использованием логических операторов с массивами
- •Функция
- •Описание
- •Примеры
- •Приложение 3. Операторы и специальные символы
- •Приложение 4. Элементарные математические функции
- •Приложение 5. Элементарные матрицы и операции над ними
- •Приложение 8. Анализ данных и преобразование Фурье
- •(Data analysis and Fourier transforms)
- •Примеры
- •Спецификаторы стилей линии
- •Спецификаторы
- •Стили линии
- •Спецификаторы цвета
- •Примеры
-0.6925 0.7214 -0.7214 -0.6925
Как и в первом случае, матрица U*S*V' равна A с точностью до ошибок округления.
Полиномы и интерполяция
В этом разделе мы ознакомимся с основными функциями MATLAB-а, которые дают возможность осуществлять математические действия с полиномами и производить интерполяцию одно-, двух-, и многомерных данных.
Полиномы и действия над ними
Обзор полиномиальных функций
Функция |
Описание |
conv |
Умножение полиномов. |
deconv |
Деление полиномов. |
poly |
Вычисление характеристического |
|
полинома матрицы или определение |
polyder |
полинома с заданными корнями. |
Вычисление производных от полиномов. |
|
polyfit |
Аппроксимация данных полиномом. |
polyval |
Вычисление значений полиномов в |
polyvalm |
заданных точках. |
Вычисление значений матричного |
|
residue |
полинома. |
Разложение на простые дроби |
|
roots |
(вычисление вычетов). |
Вычисление корней полинома. |
Представление полиномов
MATLAB представляет полиномы как векторы-строки, содержащие коэффициенты полиномов по убывающим степеням. Например, рассмотрим следующее уравнение
p(x) = x3 – 2x – 5
Это известный пример Валлиса (Wallis), использованный при первом представлении метода Ньютона во Французкой Академии. Мы будем использовать его в дальнейшем при рассмотрении примеров использования различных функций. Для ввода данного полинома в MATLAB, следует записать
p = [1 0 -2 -5].
41
Корни полинома
Корни полинома вычисляются при помощи функци roots :
r = roots(p)
r =
2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i
MATLAB запоминает вычисленные корни как вектор-столбец. Функция poly выполняет обратную роль, то есть по заданным корням полинома вычисляет значения его коэффициентов (обратите внимание на значение второго коэффициента, который в идеале равен нулю).
p2 = poly(r)
p2 =
1 8.8818e-16 -2 -5
Функции poly и roots являются взаимно-обратными функциями, с точностью до упорядочения коэффициентов, масштабирования и ошибок округления.
Характеристические полиномы
Функция poly вычисляет также коэффициенты характеристического полинома матрицы:
A = [1.2 3 -0.9; 5 1.75 6; 9 0 1];
poly(A)
ans =
1.0000 -3.9500 -1.8500 -163.2750
Корни данного полинома, вычисленные при помощи функции roots, являются собственными значениями (характеристическими числами) матрицы А. (При практических расчетах, для вычисления собственных значений матриц целесообразно вычислять их посредством функции eig.)
Вычисление значений полинома
Функция polyval вычисляет значение полинома в заданных точках. Для вычисления p в точке s = 5, следует записать
polyval(p,5)
ans =
110
Можно также вычислить значение матричного полинома. Так, вместо полинома Валлиса можно записать:
p(X) = X3 - 2X – 5I
42
где X является квадратной матрицей, а I - единичной матрицей. Например, сформируем следующую квадратную матрицу X
X = [2 4 5; -1 0 3; 7 1 5];
и вычислим значение заданного выше полинома p(X) на данной матрице.
Y = polyvalm(p, X)
Y = |
|
|
|
377 |
179 |
439 |
|
111 |
81 |
136 |
|
490 |
253 |
639 |
|
Умножение и деление полиномов |
|||
Для умножения и деления полиномов |
предназначены соответственно функцииconv и |
||
deconv. Рассмотрим полиномы a(s) = s2 + 2s + 3 |
и |
b(s) = 4s2 + 5s + 6. Для вычисления их |
|
произведения следует ввести |
|
|
|
a = [1 2 3]; b = [4 |
5 6]; |
||
c = conv(a,b) |
|
MATLAB возвращает
c =
4 13 28 27 18
Для получения из с полинома b воспользуемся функцией deconv:
[q, r] = deconv(c, a) q =
4 5 6
r =
0 0 0 0 0
где r – остаток после деления (в данном случае нулевой вектор). В общем случае для полиномов q, r , c, a в функции deconv справедливо соотношение
c = conv(q, a) + r
Вычисление производных от полиномов
Функция polyder вычисляет производную любого полинома. Для получения производной от нашего полинома p = [1 0 -2 -5], введем
q = polyder(p)
q =
3 0 - 2
43
Функция polyder вычисляет также производные от произведения или частного двух полиномов. Например, создадим два полинома a и b:
a = [1 3 5]; b = [2 4 6];
Вычислим производную произведения a*b вводом функции polyder с двумя входными аргументами a и b и одним выходным:
c = polyder(a, b)
c =
8 30 56 38
Вычислим производную от частного a/b путем ввода функции polyder с двумя выходными аргументами:
[q, d] = polyder(a, b)
q =
-2 -8 -2
d =
4 16 40 48 36
где отношение двух полиномов q/d является результатом операции дифференцирования.
Аппроксимация кривых полиномами
Функция polyfit находит коэффициенты полинома заданной степениn , который аппроксимирует данные (или функцию y(x)) в смысле метода наименьших квадратов:
p = polyfit(x, y, n)
где x и y есть векторы, содержащие данные x и y, которые нужно аппроксимировать полиномом. Например, рассмотрим совокупность данных x-y, полученную экспериментальным путем
x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4].
Аппроксимация функциональной зависимости y(x) в виде полинома третьего порядка
p = polyfit(x,y,3)
дает коэффициенты полинома
p =
-0.1917 31.5821 -60.3262 35.3400
Рассчитаем теперь значения полинома, полученного при помощи функцииpolyfit, на более мелкой шкале (с шагом 0.1) и построим для сравнения графики (это делает функция plot) реальных данных и аппроксимирующей кривой.
x2 = 1 : 0.1 : 5;
44