48968 (597417), страница 10

Файл №597417 48968 (Система математических расчетов MATLAB) 10 страница48968 (597417) страница 102016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

X(any(isnan(X')),:) = [ ];

Тогда. напечатав

X = excise(X);

вы выполните требуемое действие (excise по английски означает вырезать)


Удаление выбросов значений

Вы можете удалить выбросы значений или несовместимые данные при помощи процедур, весьма схожих с удалением NaN-ов. Для нашей транспортной задачи, с матрицей данных count, средние значения и стандартные (среднеквадратические) отклонения каждого столбца матрицы count равны

mu = mean(count)

sigma = std(count)

mu =

32.0000 46.5417 65.5833

sigma =

25.3703 41.4057 68.0281

Число строк с выбросами значений, превышающими утроенное среднеквадратическое откло-нение от среднего значения можно получить следующим образом:

[n, p] = size(count)

outliers = abs(count - mu(ones(n, 1),:)) > 3*sigma(ones(n, 1),:);

nout = sum(outliers)

nout =

1 0 0

Имеется только один выброс в первом столбце. Удалим все наблюдение при помощи выра-жения

count(any(outliers'),:) = [ ];

Регрессия и подгонка кривых

Часто бывает полезным или необходимым найти функцию, которая описывает взаимосвязь между некоторыми наблюдаемыми (или найденными экспериментально) переменными. Оп-ределение коэффициентов такой функции ведет к решению задачи переопределенной систе-мы линейных уравнений, то есть системы, у которой число уравнений превышает число не-известных. Указанные коэффициенты можно легко найти с использованием оператора обрат-ного деления \ (backslash). Допустим, вы производили измерения переменной y при разных значениях времени t.

t = [0 0.3 0.8 1.1 1.6 2.3]';

y = [0.5 0.82 1.14 1.25 1.35 1.40]';

plot(t,y,'o'); grid on

В следующих разделах мы рассмотрим три способа моделирования (аппроксимации) этих данных:

  • Методом полиномиальной регрессии

  • Методом линейно-параметрической (linear-in-the-parameters) регрессии

  • Методом множественной регрессии

Полиномиальная регрессия

Основываясь на виде графика, можно допустить, что данные могут быть аппроксимированы полиномиальной функцией второго порядка:

y = a0 + a1t + a2t2

Неизвестные коэффициенты a0 , a1 и a2 могут быть найдены методом среднеквадратичес-кой подгонки (аппроксимации), которая основана на минимизации суммы квадратов отклоне-ний данных от модели. Мы имеем шесть уравнений относительно трех неизвестных,

представляемых следующей матрицей 6х3:

X = [ones(size(t)) t t.^2]

X = 1.0000 0 0

1.0000 0.3000 0.0900

1.0000 0.8000 0.6400

1.0000 1.1000 1.2100

1.0000 1.6000 2.5600

1.0000 2.3000 5.2900

Решение находится при помощи оператора \ :

a = X\y

a =

0.5318

0.9191

- 0.2387

Следовательно, полиномиальная модель второго порядка наших данных будет иметь вид

y = 0.5318 + 0.9191t – 0.2387 t2

Оценим теперь значения модели на равноотстоящих точках (с шагом 0.1) и нанесем кривую на график с исходными данными.

T = (0 : 0.1 : 2.5)';

Y = [ones(size(T)) T T.^2]*a;

plot(T,Y,'-',t,y,'o'); grid on

Очевидно, полиномиальная аппроксимация оказалась не столь удачной. Здесь можно или по-высить порядок аппроксимирующего полинома, или попытаться найти какую-либо другую функциональную зависимость для получения лучшей подгонки.

Линейно-параметрическая регрессия1

Вместо полиномиальной функции, можно было-бы попробовать так называемую линейно-параметрическую функцию. В данном случае, рассмотрим экспоненциальную функцию

y = a0 + a1-t + a2t-t

Здесь также, неизвестные коэффициенты a0 , a1 и a2 могут быть найдены методом наимень-ших квадратов. Составим и решим систему совместных уравнений, сформировав регресси-онную матрицу X, и применив для определения коэффициентов оператор \ :

X = [ones(size(t)) exp(- t) t.*exp(- t)];

a = X\y

a =

1.3974

- 0.8988

0.4097

Значит, наша модель данных имеет вид

y = 1.39740.8988-t + 0.4097t-t

Оценим теперь, как и раньше, значения модели на равноотстоящих точках (с шагом 0.1) и на-несем эту кривую на график с исходными данными.

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


Множественная регрессия

Рассмотренные выше методы аппроксимации данных можно распространить и на случай бо-лее чем одной независимой переменной, за счет перехода к расширенной форме записи. До-пустим, мы измерили величину y для некоторых значений двух параметров x1 и x2 и полу-чили следующие результаты

x1 = [0.2 0.5 0.6 0.8 1.0 1.1]' ;

x2 = [0.1 0.3 0.4 0.9 1.1 1.4]' ;

y = [0.17 0.26 0.28 0.23 0.27 0.24]' ;

Множественную модель данных будем искать в виде

y = a0 + a1x1 + a2x2

Методы множественной регрессии решают задачу определения неизвестных коэффициентов a0 , a1 и a2 путем минимизации среднеквадратической ошибки приближения. Составим сов-местную систему уравнений, сформировав матрицу регрессии X и решив уравнения отно-сительно неизвестных коэффициентов, применяя оператор \ .

X = [ones(size(x1)) x1 x2];

a = X\y

a =

0.1018

0.4844

-0.2847

Следовательно, модель дающая минимальную среднеквадратическую ошибку аппроксима-ции имеет вид

y = 0.1018 + 0.4844x1 – 0.2847x2

Для проверки точности подгонки найдем максимальное значение абсолютного значения от-клонений экспериментальных и расчетных данных.

Y = X*a;

MaxErr = max(abs(Y - y))

MaxErr =

0.0038

Эта ошибка дает основание утверждать, что наша модель достаточно адекватно отражает ре-зультаты наблюдений.

Графический интерфейс подгонки кривых

MATLAB дает возможность осуществлять аппроксимацию данных наблюдений при помощи специального графического Интерфейса Подгонки Кривых (ИПК) (в английском оригинале - Basic Fitting interface). Используя данный интерфейс, вы можете легко и быстро решить множество задач подгонки кривых, получая при этом самую разнообразную информацию о результатах вашей подгонки. ИПК предоставляет следующие возможности:

  • Аппроксимирует данные используя сплайновый интерполянт, эрмитовый интерпо-лянт, или же полиномиальный интерполянт до 10 порядка включительно.

  • Осуществляет множество графических построений для заданных наборов данных.

  • Строит графики невязок (ошибок подгонки).

  • Анализирует численные результаты подгонки.

  • Осуществляет интерполяцию или экстраполяцию данных подгонки.

  • Аннотирует графики численными результатами подгонки и нормами ошибок аппроксимации.

  • Запоминает результаты подгонки и вычислений в рабочет пространстве MATLAB-а.

Основываясь на ваших конкретных задачах и приложениях, вы можете использовать ИПК, возможности, предоставляемыми командным окном, или же комбинировать эти две возмож-ности. Отметим, что ИПК предназначен только для работы с одномерными и двумерными данными.

Рассмотрение основных свойств ИПК

Общий вид ИПК показан ниже.

Для его вызова в подобном виде, нужно выполнить следующие три шага:

  1. Построить какой либо график данных.

  2. Выбрать опцию Basic Fitting из меню Tools вашего графического окна.

  3. Нажать дважды на кнопку More в нижней части ИПК. В результате откроется окно c тремя панелями (см. рисунок), а сама надпись заменится на Less.

Рассмотрим основные опции ИПК.

Select data (Выбор данных) – В данном окне расположен список всех переменных, построен-ных на активном графике, с которым связан ИПК (на графике может быть построено неско-лько кривых). Используйте данный список для выбора требуемого (текущего) набора дан-ных. Под текущим подразумевается тот набор данных, для которого вы хотите осуществить подгонку. За один раз вы можете осуществлять действия только с одним набором данных. С другой стороны, вы можете произвести различные подгонки для текущего набора данных за счет изменения названия этих данных. С этой целью можно воспользоваться так называемым Редактором Графиков (Plot Editor), который будет рассмотрен в дальнейшем.

Center and scale X data (Центрирование и масштабирование данных X) – Если данная опция выбрана, то данные центрируются (нуль переносится в среднее значение данных) и масшта-бируются к единичному стандартному отклонению (делятся на исходное стандартное откло-нение). Это может потребоваться для повышения точности последующих математических вычислений. Если подгонка приводит к результатам, которые могут быть неточными, соот-ветствующее предупреждение выводится на экран.

Plot fits (Подгонка кривых) – Эта панель позволяет визуально просмотреть результаты одной или более подгонок текущего набора данных.

  • Check to display fits on figure (Отметьте методы для вывода на график) – Выберите методы подгонок, которые вы хотели бы использовать и вывести на график. Здесь имеются две основные возможности – выбор интерполянтов и выбор полиномов. Сплайновый интерполянт использует для аппроксимации сплайны, тогда как эрми-товый интерполянт использует специальную функцию pchip (Piecewise Cubic Hermite Interpolating Polynomial - Кусочно-кубический Эрмитовый Интерполяционный Поли-ном). Полиномиальная подгонка использует функцию polyfit. Вы можете одновре-менно выбрать любые методы подгонки для аппроксимации ваших данных. Если ваш набор данных содержит N точек, вам следует использовать для аппроксимации поли-номы с не более чем N коэффициентами. В противном случае, ИПК автоматически приравнивает избыточное число коэффициентов нулю, что приводит к недоопреде-ленности системы. Укажем, что при этом на дисплей выдается соответствующее сооб-щение.

  • Show equations (Показать уравнения) – При выборе данной опции, уравнение подгон-ки выводится на ваш график.

  • Significant digits (Значащие разряды) – Выберите число значащих разрядов для выво-да на дисплей.

  • Plot residuals (Построить графики разностей (невязок)) – При выборе данной опции, на график выводятся разности подгонок. Под разностью подгонки понимается раз-ность между исходными данными и результатами подгонки для каждого значения ар-гумента исходных данных. Вы можете построить графики невязок как столбчатую ди-аграмму (bar plot), как график рассеяния (scatter plot), или же как линейный график. Построения можно осуществлять как в том же графическом окне, так и в отдельном. При использовании подграфиков (subplots) для построения графиков многомерных данных, графики разностей могут быть построены только в отдельном графическом окне.

  • Show norm of residuals (Показать норму разностей) – При выборе опции, на график выводятся также значения норм разностей. Норма разности является мерой качества подгонки, где меньшее значение нормы соответствует лучшему качеству. Норма рас-считывается при помощи функции norm(V,2), где V есть вектор невязок.

Numerical results (Численные результаты) – Данная панель позволяет изучать численные характеристики каждой отдельной подгонки для текущего набора данных, без построения графиков.

  • Fit (Метод подгонки) – Выберите метод подгонки. Соответствующие результаты бу-дут представлены в окне под меню выбора метода. Заметим, что выбор метода в дан-ной панели не оказывает воздействия на панель Plot fits. Поэтому, если вы хотите по-лучить графическое представление, следует выбрать соответствующую опцию в пане-ли Plot fits.

  • Coefficients and norm of residuals (Коэффициенты и норма невязок) – В данном окне выводятся численные выражения для уравнения подгонки, выбранного в Fit. Отме-тим, что при первом открытии панели Numerical Results , в рассматриваемом окне выдаются результаты последней подгонки, выбранной вами в панели Plot fits.

  • Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей подгонки.

Find Y = f(X) – Данная панель дает возможность произвести интерполяцию или экстраполя-цию текущей подгонки.

  • Enter value(s) (Введите данные) – Введите любое выражение, совместимое с систе-мой MATLAB для оценки вашей текущей подгонки в промежуточных или выходя-щих за пределы заданных аргументов точек. Выражение будет вычислено после на-жатия кнопки Evaluate (Вычислить), а результаты в табличной форме будут выве-дены в соответствующее окно ниже. Метод текущей подгонки при этом указан в ме-ню Fit.

  • Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей интерполя-ции.

  • Plot results (Построить графики) – При выборе данной опции, результаты интерполя-выводятся в графической форме на график данных.

Уравнения в конечных разностях и фильтрация

MATLAB имеет спциальные функции для работы с уравнениями в конечных разностях и фи-льтрами. Эти функции работают главным образом с векторами. Векторы используются для хранения дискретных сигналов или последовательностей, а также для обработки сигналов и анализа данных. Для систем со многими входами, каждая строка матрицы соответствует од-ной временной точки выборки сигналов, где каждый вход описывается как один вектор-стол-бец.

Функция

y = filter(b, a, x)

Характеристики

Тип файла
Документ
Размер
9,13 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6547
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее