Обработка экспериментальных данных

Статистическая обработка данных в системе MATLAB

Разбить на страницы
Показывать лекцию целиком

Важным достоинством системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде m-файлов текстового формата (с расширением m.)и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Такие файлы можно готовить как в простом и удобном редакторе m-файлов системы MATLAB, так и в любом другом текстовом редакторе. Более того, такие файлы можно перенести с помощью буфера в командную строку MATLAB и тут же исполнить.

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

Новые свойства системе MATLAB придала ее интеграция с программной системой Simulink, созданной для моделирования блочно-заданных динамических систем и устройств. Базируясь на принципах визуально-ориентированного программирования, Simulink, позволяет выполнять моделирование сложных устройств с высокой степенью достоверности и прекрасными средствами представления результатов. Помимо естественной интеграции с пакетами расширения Symbolic Math и Simulink, MATLAB интегрируется с десятками мощных пакетов расширения.

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

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

Дополнительный уровень развития системы образуют ее пакеты расширения. Они позволяют быстро ориентировать систему на решение задач в той или иной предметной области: в специальных разделах математики, физики, астрономии, проектировании и.т.д. Благодаря этому MATLAB обеспечивает высочайший уровень адаптации к решению задач конечного пользователя [3,4].

Система MATLAB может решать множество задач без программирования в командном режиме. Однако система изначально создавалась одновременно и как мощный, ориентированный на технические вычисления, язык программирования высокого уровня.

Система MATLAB имеет входной язык. Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого, привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком.

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

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

В большинстве математических систем вычисление $$ sin(V) $$ или $$ exp(V)$$, где – $$V$$ вектор, сопровождалось бы выдачей ошибки, поскольку функции $$sin$$ и $$exp$$ должны иметь аргумент в виде скалярной величины. Однако MATLAB – матричная система, а вектор является разновидностью матрицы с размером $$l,x,n$$ или $$n \times 1$$. Поэтому в нашем случае результат вычисления будет вектором того же размера, что и аргумент $$V$$, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора $$V$$.

Матрица задается в виде векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используются пробел или запятая, а для отделения одного вектора от другого – точка с запятой.

Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу "задал вопрос – получил ответ". Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его в командной строке и завершает ввод нажатием клавиши ENTER.

В качестве примера рассмотрим простейшие вычисления:

Даже из таких простых примеров можно сделать некоторые выводы:

  • для указания ввода данных используется символ $$\gg$$
  • данные вводятся с помощью простейшего строчного редактора;
  • для блокировки результата вычислений некоторого выражения после него надо устанавливать знак (;) (точка с запятой);
  • если не указана переменная для значений результата вычислений, то MATLAB назначает такую переменную с именем ans;
  • знаком присвоения является привычный математикам знак равенства (=);
  • встроенные функции (например cos) записывается строчными буквами и их аргументы указываются в круглых скобках cos(х);
  • результат вычислений выводится в строках вывода (без знака $$\gg$$);
  • диалог происходит в стиле "задал вопрос – получил ответ".
  • Интерполяция и аппроксимация данных.

    Под аппроксимацией подразумеваются описание некоторой, порой не заданной явно, зависимости или совокупности представляющих данных с помощью другой, обычно более простой или более единообразной зависимости. Данные могут быть заданны как координаты узловых точек занесенные в таблицу. График аппроксимации функции может не проходить через узловые точки, но приближать их с некоторой среднеквадратичной погрешностью. Это характерно для регрессии – реализации метода наименьших квадратов (МНК).

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

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

    Наиболее известная аппроксимация – полиномиальная. В MATLAB функции аппроксимации определены полиномами по методу наименьших квадратов – полиномиальной регрессии.

    Полиномиальную регрессию реализует функция:

  • polyfit(x,y,n) – возвращает вектор коэффициентов полинома p(x) степени n, который с наименьшей погрешностью аппроксимирует функцию y(x) .
  • [p,S] = polyfit(x,y,n) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности.
  • [p,S] = polyfit(x,y,n,mu) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности, но так, что происходит центрирование и масштабирование x, xnorm=(x-mu(1))/mu(2) , где mu(1)=mean(x) и mu(2)=std(x) . Центрирование и масштабирование не только улучшают свойства степенного многочлена, получаемого при помощи polyval, но и значительно повышают качественные характеристики алгоритма аппроксимации.
  • Пример полиномиальной регрессии для функции cos(x) :

    >>x=(-3:0.2:3)'; y=cos(x); p=polyfit(x,y,3)
    p = 0.0000   -0.2370    0.0000    0.7719
    >> x=(-4:0.2:4)'; y=cos(x);
    >> f=polyval(p,x);
    >> plot(x,y,'o',x,f)
    
     
    (рис 5.1)

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

    Фурье – интерполяция периодических функций.

    Под интерполяцией обычно подразумевают вычисления значений таблично заданной функции $$f(x_i)$$ в промежутках между узловыми точками $$x_i$$. Для периодических функций используется интерполяция тригонометрическим рядом Фурье. В системе MATLAB используется следующая функция [3,4]:

  • interpft(x,n) - возвращает вектор y, содержащий значения периодической функции, определенные n равномерно расположенных точках.
  • Если length(x)=m и x имеет интервал dx, то интервал дискретизации для y составляет dy=dx*m/n, причем n не может быть меньше чем m. Если X – матрица, interpft оперирует столбцами X, возвращая матрицу Y с таким же числом столбцов, как и у X, но с n строками. Функция y=interpft(x,n,dim) работает или со столбцами или строками в зависимости от параметра dim.

    Пример (рис 5.2)

    На рисунке 5.2 иллюстрируется эффективность данного вида интерполяции на примере функции $$cos(x).^3$$. Исходная функция представлена сплошной линией с кружками, а интерполирующая – сплошной линией.

    Решение большинства задач по интерполяции или аппроксимации сопровождаются графиками. Желательно прямо на графики нанесение формул полученных при аппроксимации. Это выполняется прямо в окне редактора Property Editor. для этого в позиции TOOLS графического окна имеются команды:

  • Basic Fitting – открывает окно дающее доступ к основным видам аппроксимации
  • Data Statistics – открывает окно с результатами простейшей статической обработки данных.
  • И выглядит это следующим образом на рисунке 5.3. показан пример выполнения полиномиальной регрессии для линейной, квадратичной, кубической регрессии и для полинома 4 и 5 степени. (рис 5.3)

    Краткие итоги

    Рассмотрена система MATLAB — автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций.

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

    Вопросы для самопроверки

  • Перечислите достоинства и недостатки системы MATLAB.
  • Как решаются матрицы в системе MATLAB?
  • Что является Основной задачей интерполяции?
  • Как определяется функция аппроксимации?
  • Какие функции реализуют полиномиальную регрессию в системе MATLAB?
  • Что понимают под интерполяцией?
  • Для каких функций применяется тригонометрический ряд Фурье?
  • Дайте характеристику данной функции interpft(x,n)?
  • Страницы:

    Важным достоинством системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде m-файлов текстового формата (с расширением m.)и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Такие файлы можно готовить как в простом и удобном редакторе m-файлов системы MATLAB, так и в любом другом текстовом редакторе. Более того, такие файлы можно перенести с помощью буфера в командную строку MATLAB и тут же исполнить.

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

    Новые свойства системе MATLAB придала ее интеграция с программной системой Simulink, созданной для моделирования блочно-заданных динамических систем и устройств. Базируясь на принципах визуально-ориентированного программирования, Simulink, позволяет выполнять моделирование сложных устройств с высокой степенью достоверности и прекрасными средствами представления результатов. Помимо естественной интеграции с пакетами расширения Symbolic Math и Simulink, MATLAB интегрируется с десятками мощных пакетов расширения.

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

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

    Дополнительный уровень развития системы образуют ее пакеты расширения. Они позволяют быстро ориентировать систему на решение задач в той или иной предметной области: в специальных разделах математики, физики, астрономии, проектировании и.т.д. Благодаря этому MATLAB обеспечивает высочайший уровень адаптации к решению задач конечного пользователя [3,4].

    Система MATLAB может решать множество задач без программирования в командном режиме. Однако система изначально создавалась одновременно и как мощный, ориентированный на технические вычисления, язык программирования высокого уровня.

    Система MATLAB имеет входной язык. Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого, привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком.

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

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

    В большинстве математических систем вычисление $$ sin(V) $$ или $$ exp(V)$$, где – $$V$$ вектор, сопровождалось бы выдачей ошибки, поскольку функции $$sin$$ и $$exp$$ должны иметь аргумент в виде скалярной величины. Однако MATLAB – матричная система, а вектор является разновидностью матрицы с размером $$l,x,n$$ или $$n \times 1$$. Поэтому в нашем случае результат вычисления будет вектором того же размера, что и аргумент $$V$$, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора $$V$$.

    Матрица задается в виде векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используются пробел или запятая, а для отделения одного вектора от другого – точка с запятой.

    Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу "задал вопрос – получил ответ". Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его в командной строке и завершает ввод нажатием клавиши ENTER.

    В качестве примера рассмотрим простейшие вычисления:

    Даже из таких простых примеров можно сделать некоторые выводы:

  • для указания ввода данных используется символ $$\gg$$
  • данные вводятся с помощью простейшего строчного редактора;
  • для блокировки результата вычислений некоторого выражения после него надо устанавливать знак (;) (точка с запятой);
  • если не указана переменная для значений результата вычислений, то MATLAB назначает такую переменную с именем ans;
  • знаком присвоения является привычный математикам знак равенства (=);
  • встроенные функции (например cos) записывается строчными буквами и их аргументы указываются в круглых скобках cos(х);
  • результат вычислений выводится в строках вывода (без знака $$\gg$$);
  • диалог происходит в стиле "задал вопрос – получил ответ".
  • Интерполяция и аппроксимация данных.

    Под аппроксимацией подразумеваются описание некоторой, порой не заданной явно, зависимости или совокупности представляющих данных с помощью другой, обычно более простой или более единообразной зависимости. Данные могут быть заданны как координаты узловых точек занесенные в таблицу. График аппроксимации функции может не проходить через узловые точки, но приближать их с некоторой среднеквадратичной погрешностью. Это характерно для регрессии – реализации метода наименьших квадратов (МНК).

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

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

    Наиболее известная аппроксимация – полиномиальная. В MATLAB функции аппроксимации определены полиномами по методу наименьших квадратов – полиномиальной регрессии.

    Полиномиальную регрессию реализует функция:

  • polyfit(x,y,n) – возвращает вектор коэффициентов полинома p(x) степени n, который с наименьшей погрешностью аппроксимирует функцию y(x) .
  • [p,S] = polyfit(x,y,n) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности.
  • [p,S] = polyfit(x,y,n,mu) – возвращает коэффициенты полинома p и структуру S для использования вместе с функцией polyfval с целью оценивания или предсказания погрешности, но так, что происходит центрирование и масштабирование x, xnorm=(x-mu(1))/mu(2) , где mu(1)=mean(x) и mu(2)=std(x) . Центрирование и масштабирование не только улучшают свойства степенного многочлена, получаемого при помощи polyval, но и значительно повышают качественные характеристики алгоритма аппроксимации.
  • Пример полиномиальной регрессии для функции cos(x) :

    >>x=(-3:0.2:3)'; y=cos(x); p=polyfit(x,y,3)
    p = 0.0000   -0.2370    0.0000    0.7719
    >> x=(-4:0.2:4)'; y=cos(x);
    >> f=polyval(p,x);
    >> plot(x,y,'o',x,f)
    
     
    (рис 5.1)

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

    Фурье – интерполяция периодических функций.

    Под интерполяцией обычно подразумевают вычисления значений таблично заданной функции $$f(x_i)$$ в промежутках между узловыми точками $$x_i$$. Для периодических функций используется интерполяция тригонометрическим рядом Фурье. В системе MATLAB используется следующая функция [3,4]:

  • interpft(x,n) - возвращает вектор y, содержащий значения периодической функции, определенные n равномерно расположенных точках.
  • Если length(x)=m и x имеет интервал dx, то интервал дискретизации для y составляет dy=dx*m/n, причем n не может быть меньше чем m. Если X – матрица, interpft оперирует столбцами X, возвращая матрицу Y с таким же числом столбцов, как и у X, но с n строками. Функция y=interpft(x,n,dim) работает или со столбцами или строками в зависимости от параметра dim.

    Пример (рис 5.2)

    На рисунке 5.2 иллюстрируется эффективность данного вида интерполяции на примере функции $$cos(x).^3$$. Исходная функция представлена сплошной линией с кружками, а интерполирующая – сплошной линией.

    Решение большинства задач по интерполяции или аппроксимации сопровождаются графиками. Желательно прямо на графики нанесение формул полученных при аппроксимации. Это выполняется прямо в окне редактора Property Editor. для этого в позиции TOOLS графического окна имеются команды:

  • Basic Fitting – открывает окно дающее доступ к основным видам аппроксимации
  • Data Statistics – открывает окно с результатами простейшей статической обработки данных.
  • И выглядит это следующим образом на рисунке 5.3. показан пример выполнения полиномиальной регрессии для линейной, квадратичной, кубической регрессии и для полинома 4 и 5 степени. (рис 5.3)

    Краткие итоги

    Рассмотрена система MATLAB — автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций.

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

    Вопросы для самопроверки

  • Перечислите достоинства и недостатки системы MATLAB.
  • Как решаются матрицы в системе MATLAB?
  • Что является Основной задачей интерполяции?
  • Как определяется функция аппроксимации?
  • Какие функции реализуют полиномиальную регрессию в системе MATLAB?
  • Что понимают под интерполяцией?
  • Для каких функций применяется тригонометрический ряд Фурье?
  • Дайте характеристику данной функции interpft(x,n)?
  • Вернуться к учебному плану