kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Компьютерное моделирование при обработке опытных данных

Нажмите, чтобы узнать подробности

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

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Компьютерное моделирование при обработке опытных данных»

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ

ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»




Факультет физико-математический


Кафедра информатики и вычислительной техники




РЕФЕРАТ



КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ПРИ ОБРАБОТКЕ ОПЫТНЫХ ДАННЫХ



Автор работы_______________________________________ Е. В. Соколова

Направления подготовки 44.03.05 Педагогическое образование

Профиль Математика. Информатика



Руководитель работы

канд. физ. мат. наук, доцент_______________________ Т. В. Кормилицина





Оценка __________











Саранск 2021

СОДЕРЖАНИЕ


ВВЕДЕНИЕ 3

1 Аппроксимация и интерполяция 4

1.1 Аппроксимация 4

1.2 Полиномиальная аппроксимация 5

2 Интерполяция сплайнами 7

2.1 Одномерная интерполяция 7

2.2 Двумерная интерполяция 11

2.3 Трехмерная интерполяция 15

ЗАКЛЮЧЕНИЕ 19

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 20


ВВЕДЕНИЕ



Любому специалисту в своей практической деятельности приходится изучать зависимости между различными параметрами исследуемых объектов, процессов и систем.

Например: зависимость числа оборотов двигателя от нагрузки, т.е. ; зависимость силы резания при обработке детали на металлорежущем станке от глубины резания, т.е. и т.д.

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

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

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

Далее с этой табличной функцией необходимо вести научно-исследовательские расчеты. Например, необходимо проинтегрировать или продифференцировать табличную функцию и т.д.

Рассмотрим две задачи по обработке опытных данных:

  1. задачу интерполирования,

  2. задачу аппроксимации.



1 Аппроксимация и интерполяция


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

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

Если требовать, чтобы построенная кривая точно проходила через точки, как зеленая линия на рисунке, то это задача интерполяции.


1.1 Аппроксимация


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


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


1.2 Полиномиальная аппроксимация


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

p=polyfit(x,y,n)

где y – вектор значений функции; x – вектор значений аргумента; n – порядок аппроксимирующего полинома; p – полученный в результате вектор коэффициентов аппроксимирующего полинома длиной n+1.

Пусть имеется массив значений аргументов

x=[1 2 3 4 4 5 3 6 10 8 9 7];

и массив соответствующих им значений измеряемой величины:

y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

Примерим к этим данным функцию polyfit при n=1, n=2 и n=3:

x=[1 2 3 4 4 5 3 6 10 8 9 7];

y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

p1=polyfit(x,y,1)

p1 =

0.7918 0.9089

p2=polyfit(x,y,2)

p2 =

0.0107 0.6724 1.1593

p3=polyfit(x,y,3)

p3 =

-0.0017 0.0392 0.5421 1.3132

В результате получили три вектора p1, p2, и p3, первый из которых содержит коэффициенты аппроксимирующей прямой , второй вектор – коэффициенты аппроксимирующей квадратной параболы , а третий – коэффициенты аппроксимирующей кубической параболы . Аналогичным образом можно аппроксимировать данные параболой четвертой степени, пятой, шестой, седьмой и т.д. На рис. 1 представлены построенные для наглядности графики исходной зависимости и аппроксимирующих полиномов (для вычисления полиномов использовалась функция polyval):

x=[1 2 3 4 4 5 3 6 10 8 9 7];

y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

title('Полиномиальная аппроксимация')

xlabel('x'); ylabel('y'); hold on

plot(x,y,'ko')

p1=polyfit(x,y,1);

p2=polyfit(x,y,2);

p3=polyfit(x,y,3);

t=0:0.05:10;

y1=polyval(p1,t);

y2=polyval(p2,t);

y3=polyval(p3,t);

plot(t,y1,'k-',t,y2,'k--',t,y3,'k:'), grid on

legend('Данные эксперимента',...

'Аппроксимирующая прямая',...

'Аппроксимирующая квадратная парабола',...

'Аппроксимирующая кубическая парабола',2)


Рисунок 1 – Пример аппроксимации полиномами

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


2 Интерполяция сплайнами

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

2.1 Одномерная интерполяция


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

Для выполнения интерполяции кубическими сплайнами можно использовать функцию spline, обращение к которой имеет вид:

yy=spline(x,y,xx)

В результате будет выполнена интерполяция значений вектора y, заданного для значений аргумента, представленного вектором x и вернет вектор yy, содержащий значения интерполирующей функции для значений аргумента, заданного вектором xx.

Выполним, например, интерполяцию кубическими сплайнами для значений, заданных векторами x и y, и отобразим полученный результат на рис. 2.

x=[1 2 3 4 5 6 7 8 9 10 11 12];

y=[2 3 6 4.5 7 7.5 9 8 10 11 5 1];

title('Аппроксимация кубическими сплайнами');

xx=0:0.05:12;

yy=spline(x,y,xx);

xlabel('x'); ylabel('y');

plot(x,y,'ko',xx,yy,'k-'), grid on;

legend('Экспериментальные данные','Кубический сплайн')


Рисунок 2 – Интерполяция кубическими сплайнами

Для одномерной (кусочно-полиномиальной) интерполяции экспериментальных данных в системе MATLAB имеется функция interp1, обращение к которой имеет вид:

yy=interp1(x,y,xx,method)

где x – абсциссы аппроксимируемой функции; y – ординаты аппроксимируемой функции; xx – абсциссы контрольных точек, в которых вычисляются значения аппроксимирующих полиномов, возвращаемые в качестве вектора yy; method – способ аппроксимации, задаваемый в виде строки символов (в действительности, достаточно задать лишь первый символ).

Функция interp1 предоставляет на выбор следующие методы:

'nearest' – ступенчатая интерполяция (здесь значение в каждой промежуточной точке принимается равным ближайшему экспериментальному значению – аппроксимация кусочными полиномами нулевой степени (ступеньками));

'linear' – линейная интерполяция (соседние точки соединяются отрезками прямых в соответствии с данными эксперимента – аппроксимация кусочными полиномами первой степени) – используется по умолчанию;

'spline' – интерполяция кубическими сплайнами;

'pchip' или 'cubic' – интерполяция кусочными полиномами Эрмита третьей степени.

При аппроксимации по методу 'spline' в узловых точках непрерывны первая и вторая производные, а во внутренних узлах, соседних с концевыми также непрерывна и третья производная.

При использовании метода 'pchip' вторая производная может иметь разрывы. Сплайн, построенный по методу 'pchip', является монотонным на любом участке, на котором монотонны данные, этот сплайн воспроизводит локальные экстремумы данных.

Для гладких данных предпочтителен метод 'spline', для негладких целесообразно использовать 'pchip'.

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

Пример М-файла

x=[1 2 3 4 5 6 7 8 9 10 11 12];

y=[2 3 6 4.5 7 7.5 9 8 10 11 5 1];

xx=0:0.05:12;

yy0=interp1(x,y,xx,'nearest');

yy1=interp1(x,y,xx,'linear');

yy3s=interp1(x,y,xx,'spline');

yy3c=interp1(x,y,xx,'cubic');

plot(x,y,'o',xx,yy0,xx,yy1,xx,yy3s,xx,yy3c), grid on

legend('EXPERIMENTAL DATA','NEAREST','LINEAR','SPLINE','CUBIC',0)

title('INTERP1'),xlabel('X'); ylabel('Y');

Рисунок 3 – Сопоставление различных методов интерполяции



2.2 Двумерная интерполяция


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

Приведем пример интерполяции точечно заданной функции двух переменных. Пусть

, , ,

– номер студента по списку

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

Затем проводим интерполяцию на расширенной сеточной области и с шагами , .


Пример М-файла

disp('U(x,y)=exp(-x^2)*cos(pi*y^2)')

s=input('s=');

% построение точечной функции двух переменных U(x,y)

% на сеточной области 1

x=1:0.5:2;

y=1-s/10:0.5:2+s/10;

[X,Y] = meshgrid(x,y);

U=exp(-X.^2).*cos(pi*Y.^2);

disp('значения U в узлах исходной сетки'),disp(U)

figure()

surf(x,y,U),title('function U=exp(-x^2)*cos(pi*y^2)')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')

disp('-----------------Интерполяция---------------------------')

% интерполяция точечно заданной функции двух переменных U(x,y)

% на сеточной области 0

[xi,yi]=meshgrid(0:.1:2.5,0-s/10:.1:2.5+s/10);

ui=interp2(X,Y,U,xi,yi);

figure(), mesh(xi,yi,ui),title('interp2: default')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')

ui1=interp2(X,Y,U,xi,yi,'nearest');

figure(), mesh(xi,yi,ui1),title('interp2: nearest')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')

ui2=interp2(X,Y,U,xi,yi,'linear');

figure(), mesh(xi,yi,ui2),title('interp2: linear')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')

ui3=interp2(X,Y,U,xi,yi,'cubic');

figure(), mesh(xi,yi,ui3),title('interp2: cubic')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')

ui4=interp2(X,Y,U,xi,yi,'spline');

figure(), mesh(xi,yi,ui4),title('interp2: spline')

colormap cool

colorbar;

axis image;

xlabel('X'),ylabel('Y'),zlabel('z=U(x,y)')


Полученные результаты представлены для .


U(x,y)=exp(-x^2)*cos(pi*y^2)

s=12

значения U в узлах исходной сетки

0.3650 0.1046 0.0182

0.3533 0.1012 0.0176

-0.1566 -0.0449 -0.0078

0.2068 0.0592 0.0103

-0.2682 -0.0768 -0.0134

-0.2255 -0.0646 -0.0112

0.3224 0.0924 0.0161


----------------Интерполяция---------------------------




2.3 Трехмерная интерполяция


Для интерполирования трехмерных данных предназначена функция interp3.

Приведем пример интерполяции точечно заданной функции трех переменных. Пусть

, , ,

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

Затем проводим интерполяцию на сеточной области , с шагами , , .


Прмер М-файла

[x,y,z] = meshgrid(-1:0.5:1,-1:0.5:1,0:1:4);

U=z.*exp(-x.^2-y.^2);

figure(),slice(x,y,z,U,[-0.5 0.5],0,[1 3]),title('U(x,y,z)=z*exp(-x^2-y^2)')

colormap hsv

colorbar

axis image;

xlabel('X'),ylabel('Y'),zlabel('Z')

disp('-----------------Интерполяция---------------------------')

[xi,yi,zi] = meshgrid(-1:0.1:1, -1:0.1:1, 0:0.2:4);

vi_c = interp3(x,y,z,U,xi,yi,zi,'nearest');

figure(),slice(xi,yi,zi,vi_c,[-0.5 0.5],0,[1 3]),title('interp3: nearest')

colormap hsv

colorbar

axis image;

xlabel('X'),ylabel('Y'),zlabel('Z')


vi_L = interp3(x,y,z,U,xi,yi,zi,'linear');

figure(),slice(xi,yi,zi,vi_L,[-0.5 0.5],0,[1 3]),title('interp3: linear')

colormap hsv

colorbar

axis image;

xlabel('X'),ylabel('Y'),zlabel('Z')

vi_cub = interp3(x,y,z,U,xi,yi,zi,'cubic');

figure(),slice(xi,yi,zi,vi_cub,[-0.5 0.5],0,[1 3]),title('interp3: cubic')

colormap hsv

colorbar

axis image;

xlabel('X'),ylabel('Y'),zlabel('Z')

vi_spl = interp3(x,y,z,U,xi,yi,zi,'spline');

figure(),slice(xi,yi,zi,vi_spl,[-0.5 0.5],0,[1 3]),title('interp3: spline')

colormap hsv

colorbar

axis image;

xlabel('X'),ylabel('Y'),zlabel('Z')


Полученные результаты представлены в сечениях:

x=-0.5,0.5, y=0, z=1,3

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


----------------Интерполяция---------------------------

Кроме того, для интероляции многомерных данных в системе МАТЛАБ имеется функция interpn .

ЗАКЛЮЧЕНИЕ


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


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


  1. Акопов, А. С. Компьютерное моделирование : учебник и практикум для среднего профессионального образования / А. С. Акопов. – Москва : Издательство Юрайт, 2020. – 389 с. – URL: https://urait.ru/bcode/456787 (дата обращения: 24.10.2021). – ISBN 978-5-534-10712-8. – Текст : электронный.

  2. Губарь, Ю. В. Введение в математическое моделирование : практическое пособие / Ю. В. Губарь ; Национальный Открытый Университет "ИНТУИТ". – Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), 2007. – 153 с. – URL: https://biblioclub.ru/index.php?page=book&id=233992 (дата обращения: 08.11.2021). – Текст : электронный.

  3. Заикин, А. Д. Некоторые задачи вычислительной математики / А. Д. Заикин. – Текст : электронный // НГТУ Кафедра прикладной и теоретической физики. – URL: http://pitf.ftf.nstu.ru/files/zaikin/archive13.html

  4. Сафонов, В. И. Компьютерное моделирование : учебное пособие / В. И. Сафонов ; Мордовский государственный педагогический институт. – Саранск : РИЦ МГПИ, 2009. – 92 с. – ISBN 978-5-8156-0252-6. – Текст : электронный.

  5. http://csaa.ru/polinomialnaja-approksimacija/


Получите в подарок сайт учителя

Предмет: Прочее

Категория: Прочее

Целевая аудитория: Прочее

Скачать
Компьютерное моделирование при обработке опытных данных

Автор: Соколова Елизавета Валерьевна

Дата: 21.12.2021

Номер свидетельства: 595752

Похожие файлы

object(ArrayObject)#863 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(105) "Компьютерное моделирование при обработке опытных данных"
    ["seo_title"] => string(59) "kompiuternoe_modelirovanie_pri_obrabotke_opytnykh_dannykh_1"
    ["file_id"] => string(6) "595753"
    ["category_seo"] => string(7) "prochee"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1640116672"
  }
}
object(ArrayObject)#885 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(186) "Решение задач с использованием физического эксперимента и компьютерной измерительной системы L - micro "
    ["seo_title"] => string(116) "rieshieniie-zadach-s-ispol-zovaniiem-fizichieskogho-ekspierimienta-i-komp-iutiernoi-izmieritiel-noi-sistiemy-l-micro"
    ["file_id"] => string(6) "109458"
    ["category_seo"] => string(6) "fizika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1404597687"
  }
}
object(ArrayObject)#863 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(89) "Газовые законы-экспериментальное решение задач "
    ["seo_title"] => string(55) "gazovyie-zakony-ekspierimiental-noie-rieshieniie-zadach"
    ["file_id"] => string(6) "109461"
    ["category_seo"] => string(6) "fizika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1404635072"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства