Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Обработка данных и моделирование в математических пакетах. Учебно-методическое пособие по дисциплине «Информатика»

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
нем углу окна) нужную переменную,
в окне Workspace два раза щелкнуть по имени переменной, например C (на рис. 6.14 справа),
ее значения отобразятся в окне Variable Editor:
Рис. 6.13. Окна системы MATLAB
Аналогично проверяются все значения вычисленных переменных. Полученные значения можно сравнить со значениями, отображаемыми блоком Floating Bar Plot. Нетрудно заметить, что результаты моделирования совпали с расчетными значениями.
Рис. 6.14. Отображение значений переменной C в окне MATLAB
6. Скопировать в отчет программы, модель, результаты проверки программ, гистограм-
мы в разных точках модели и сделать выводы по выполненному заданию.
6.8. Методика выполнения шифрования данных в Mathcad
1. Запустить Mathcad и открыть палитры: Вычисление, Матрица, Программирование
(рис. 6.15).
2. В рабочем поле выполнить следующие действия:
задать глобальное значение системной переменной ORIGIN 1,
задать строковую переменную s заданной фразой (табл.3.1), преобразовать строку в вектор кодов и вывести вектор кодов для удобства работы в
виде строки,
сохранить файл в своей папке латинскими символами.
3. Разработать, написать и отладить модуль SC, реализующий процесс шифрования
строки s. Программа (рис. 6.15) должна содержать:
31
функцию преобразования символов фразы в соответствующие коды, операторы, реализующие процесс шифрования по заданному алгоритму, функцию преобразования кодов в символы vec2str(), из которых формируется новая
фраза.
Рис. 6.15. Шифрование и дешифрование заданной фразы
4. Вывести результаты расчета модуля и проконтролировать полученный результат.
5. Аналогично разработать, написать и отладить модуль DT, реализующий процесс
восстановления строки.
6. Вывести результаты расчета модуля и проконтролировать полученный результат.
7. Сохранить результаты преобразований и сравнить полученные значения с результа-
тами расчета в системе MATLAB.
8. Скопировать в отчет результаты расчетов и сделать выводы относительно возможно-
стей математических сред по реализации поставленной задачи.
6.9. Обработка данных. Регрессионный анализ
При проведении научно-технических расчетов возникает задача приближенного вы­числения значений функции в промежутках между узловыми точками (интерполяция) и за их пределами (экстраполяция). К сожалению высокой точности, при интерполяции, и тем боле экстраполяции, нет.
Немаловажное значение играет решение задач на приближение данных теми или ины­ми зависимостями вида y(x), причем число точек этих зависимостей ограничено.
Замена исходной зависимости какой-либо достаточно простой функцией называется
аппроксимацией.
Представление совокупности данных некоторой функцией y(x) называется регрессией. Задача регрессии заключается в получении параметров этой функции такими, чтобы функ­ция приближала «облако» исходных точек, заданных векторами VX и VY, с наименьшей среднеквадратичной погрешностью. Сама линия регрессии проходит в «облаке» исходных
32
точек, векторов VX и VY, с максимальным среднеквадратичным приближением к ним. Из­вестны следующие виды регрессии:
1. линейная (отрезок прямой линии),
2. полиномиальная (полином произвольной степени),
3. линейная общего вида (линейная сумма произвольных функций),
4. нелинейная общего вида (произвольная функция) – в данной работе не используется.
6.9.1. Формирование выборки данных для исследования
1. В системе Mathcad необходимо сначала записать строковую переменную Str в виде
выборки трех идущих подряд слов из заданной фразы, небольших по размеру записанных слитно, т.е. без пробелов. Например, Str:=’Япомнючудное’
2. Используя операторы программирования, сформировать два вектора VX и VY. Вектор VY должен содержать коды выборки строки Str. А вектор VX – порядковые номера этих ко­дов в выборочной совокупности. Пример формирования двух векторов и расчет статистиче­ских показателей выборки данных приведены на рис. 6.16.
Рис. 6. 16 Программа формирования векторов выборки данных
33
6.9.2. Линейная регрессия
При линейной регрессии функция y(x) имеет вид y(x)=a∙x+b и описывает отрезок пря-
мой.
Для проведения линейной регрессии в Mathcad имеются ряд встроенных функций: slope(VX,VY) – возвращает значение параметра a – наклон линии регрессии (угловой
коэффициент линии регрессии),
intercept(VX,VY) – возвращает параметр b – смещение линии регрессии по вертикали (свободный член регрессии), где VX и VY – векторы координат заданных точек. Координаты отдельной точки занимают в векторах VX и VY одинаковые позиции.
На рис. 6.17 приведен пример использования линейной регрессии к выборке данных, пред­ставленных в векторах VX и VY.
Как видно из рисунка, линия регрессии проходит в средней части «облака» исходных точек VY. Критерием точности вычисления закона регрессии является коэффициент детер­минации. И чем ближе коэффициент детерминации к единице, тем точнее зависимость LY(x) представляет VY(VX).
В примере коэффициент детерминации R2 = 0.0001 существенно отличается от едини­цы (близок к нулю), и по рисунку видно, что графики линейной регрессии LY(x) и выборки данных вектора VY значительно различаются. Так вычисленное значение функции во второй узловой точке LY(2)=1087 не равно истинному значению (1085), а в 1 и 6 точках существенно разнятся.
Если вывести расчетные значения LY(x) и выборку данных VY и сопоставить их, то можно увидеть, что в большинстве точек они значительно отличаются друг от друга.
Следовательно, можно сделать вывод, что для данной выбор­ки данных полученный закон линейной регрессии не приемлем, что хорошо иллюстрирует график.
Поэтому линейный закон для данной выборки VY только от­ражает тенденцию изменения ее данных.
34
Рис. 6.17. Линейная регрессия
1 2 2
1 2 2 1 0
( ) ...
n n n
n n n
y x a x a x a x a x a x a
6.9.3. Полиномиальная регрессия
При полиномиальной регрессии функция y(x) имеет вид:
Для реализации полиномиальной регрессии имеется встроенная функция
regress(VX,VY,n), которая возвращает вектор VS, запрашиваемый функцией interp(VS,VX,VY,x) и содержащий коэффициенты полинома n–й степени. Эти коэффициенты
вычисляются по всей совокупности заданных точек, т. е. глобально. Полученный полином наилучшим образом приближается к «облаку» точек с координатами, хранящимися в векторах VX и VY.
На рис. 6.18 приведен пример использования полиномиальной регрессии для той же вы­борки данных, представленных в векторах VX и VY, что и при линейной регрессии.
Для вычисления коэффициентов полинома используется функция submatrix() – часть матрицы. Функция submatrix(М, ir, jr, ic, jc) возвращает субматрицу из элементов в строках
(11)
35
от ir до jr и в столбцах от ic до jc матрицы М.
: ( ,4, ( ),1,1)Coeffs submatrix z length z
В примере взяты следующие аргументы функции:
(12)
Чтобы разобраться с аргументами этой функции выведем значения вектора z вторых производных VY.
Как видно, в функции submatrix():
первый аргумент z – имя вектора; второй – номер строки, начиная с которой располагаются коэффи-
циенты полинома, причем первым – идет коэффициент a0 (в примере a0=1198);
третий – номер строки, в которой коэффициенты завершаются. А,
поскольку заранее не известно полином, какой степени будет наилучшим образом описывать выборку данных, то лучше в качестве последней строки взять функцию, вычисляющую дли­ну вектора z. В примере length(z)=12, при степени полинома k=8;
Рис. 6.18. Полиномиальная регрессия
36
четвертый и пятый аргументы равны 1, т.к. вместо
( ) ( , 1, 2,... ) 1 1( ) 2 2( ) ... ( )y x F x K K Kn K F x K F x Kn Fn x
цы рассматривается вектор z, содержащий 1 столбец, в котором располагаются коэффициенты полинома.
В примере коэффициент детерминации равен R2=0,915, что незначительно отличается от единицы. Кроме того, графики полиномиальной регрессии PY(x) и исходных данных VY очень близки. Если вывести значения векторов PY(x) и выборки данных VY и сопоставить их, то можно увидеть некоторое различие.
Следовательно, можно сделать вывод, что для данной вы­борки данных полученный закон полиномиальной регрессии может быть применен с некоторой погрешностью при вычисле­нии.
Коэффициент детерминации R
2
в программе рассчитыва-
ется по формуле:
(13)
где в числителе среднеквадратичное отклонение расчетных значений точек полинома, а в знаменателе – среднеквадратичное отклонение значений точек выборки. Чем ближе расчет­ные значения совпадут с данными выборки в узловых точках, тем отношение среднеквадра­тичных отклонений ближе к 1, и закон точнее описывает выборку данных.
При работе с полиномом надо сначала установить небольшую степень полинома и про­контролировать значение R2 . Увеличивая степень полинома необходимо контролировать увеличение значения коэффициента детерминации. Увеличение степени полинома нужно прекратить при достижении высоких значений коэффициента детерминации и относительно не сложном аналитическом выражении закона полиномиальной регрессии.
6.9.4. Линейная регрессия общего вида
В линейной регрессии общего вида заданная выборка данных приближается к функции y(x) вида:
(14)
Таким образом, функция регрессии является линейной комбинацией нескольких функ­ций F1(x), F2(x),…, Fn(x), причем сами эти функции могут быть и нелинейными, что резко расширяет возможности такой аппроксимации и распространяет ее на нелинейные функции.
Для реализации линейной регрессии общего вида используется функция linfit(VX,VY,F), которая возвращает вектор коэффициентов К линейной регрессии общего вида, при котором среднеквадратичная погрешность приближения «облака» исходных данных, координаты ко­торых хранятся в векторах VX и VY, оказывается минимальной.
Вектор F функции linfit() должен содержать функции F1(x), F2(x), …, Fn(x), записанные в символьном виде. Вектор VX должен содержать абсциссы точек в порядке возрастания, а ординаты в век­торе VY должны соответствовать абсциссам в векторе VX.
На рис. 6.19 приведен пример использования линейной регрес­сии общего вида для той же выборки данных, представленных в век­торах VX и VY, что и при других видах регрессии.
В примере коэффициент детерминации R2=0,911, что близко к единице. Но графики линейной регрессии LA(x) и исходных данных VY выборки все же несколько различаются. Если вывести значения векторов LA(x) и выборки данных VY и сопоставить их, то можно уви­деть различие в точках 2 – 4, 8 – 10, 11.
37
Следовательно, можно сделать вывод, что для данной выборки данных полученный за­кон линейной регрессии общего вида может быть применен с погрешностью при вычисле­нии.
Рис. 6.19 Линейная регрессия общего вида
Поскольку значения кодов в выборке VY носят скачкообразный характер, то ни один из рассмотренных трех законов к выборке данных не подходит идеально, но могут быть приме­нены законы полиномиальной регрессии и регрессии общего вида с некоторой погрешно­стью.
6.10. Методика выполнения моделирования фразы
1. В рабочем поле задать текстовую область с комментарием «Формирование вектора
выборки данных».
2. Задать строку Str, содержащую выборку символов любых смежных слов без пробе-
лов и знаков препинания.
38
3. Разработать, написать и отладить модуль, реализующий формирование два вектора
VY с кодами символов строки Str и VX – с их порядковыми номерами.
4. Построить график VY(VX).
5. Полученную закономерность VY(VX) исследовать с помощью регрессионного анали-
за. Сначала выполнить линейную регрессию, затем – полиномиальную, и в заключении – ли­нейную общего вида. Описание этих видов регрессий приведено в разделе 6.9.
6. Для всех видов регрессий привести соответствующие им функции, графики, коэффи­циенты детерминации и аналитические выражения, соответствующие полученным законам. Снабдить все действия комментариями.
7. При работе с полиномиальной регрессией провести исследования для нескольких значений степени полинома.
Исследование лучше начать с полинома третьей степени. При этом необходимо анали-
зировать как коэффициент детерминации, так и график полиномиальной регрессии. Форма кривой полинома должна максимально приближаться к опорным точкам зависимости VY(VX). Постепенно степень полинома повышать (3, 4,…), при этом каждый раз контроли­ровать кривую полинома и коэффициент детерминации, который должен стремиться к 1. Не­обходимо добиться, чтобы график полинома как можно ближе подошел к опорным точкам вектора VY при R21.
При этом надо помнить, что не рекомендуется делать степень полинома очень боль-
шим, поскольку погрешность реализации возрастает, да и аналитическое выражение стано­виться весьма громоздким. Далеко не всегда, даже увеличивая степень полинома, можно найти такие коэффициенты полинома, при которых график полиномиального закона точно совпадет с узловыми точками вектора VY и коэффициент детерминации при этом станет рав­ным 1 (R21).
8. При работе с линейной регрессией общего вида необходимо сначала проанализиро­вать график VY(VX). При задании вектора F(x), содержащего функции в символьном виде, необходимо учитывать форму этого графика (плавное его изменение sin(x), x3, ln(x) или име­ются резкие выбросы tan(x)). Формой кривой определяются сами функций и их количество, которые войдут в выражение регрессионного закона. Возможен вариант, при котором подоб­рать нужные функции быстро не получается. Тогда, варьируя одной функцией, меняя ее сте­пень, аргумент, смещение, добиться максимального приближения графика к узловым точкам. Потом аналогично поработать поочередно с другой, третьей и т.д. функциями. Пока не добь­етесь нужного результата. Следует подобрать функции таким образом, чтобы график иссле­дуемого закона максимально приблизился к узловым точкам выборки VY при этом коэффи­циент детерминации R21.
9. Из рассмотренных законов регрессии выбрать один. Для этого закона коэффициент детерминации должен быть самым большим, аналитическое выражение по возможности не очень громоздким и график функции проходить как можно ближе к узловым точкам.
10. Используя полученные аналитические выражения восстановить исходную строку Str и подсчитать количество совпавших после восстановления фразы символов с символами исходной строки Str. Пример программы приведен на рис. 6.20.
11. Рассчитанные по формулам P(x) и LA(x) коды сначала необходимо округлить до целых значений, а затем преобразовать их в строки. Далее составить программу подсчета количества совпадений символах восстановленной выборки с заданной. Как видно по примеру на рис. 6.20, количество совпадений символов составило 2 – при использовании регрессии полиномиальной и 3 – при использовании регрессии линейной общего вида.
39
Рис. 6.20. Восстановление заданной строки Str
12. По результатам расчета можно сделать выводы относительно возможности замены
текстовых данных их формульной зависимостью, полученной с помощью регрессионного ана­лиза. Как показали исследования математическая модель заданной выборки, полученная с по­мощью регрессионного анализа, не дала адекватный результат, что говорит о сложности полу­чения достоверной математической модели при работе с текстовой информацией.
Но если коды символов интерпретировать как некие физические величины (температура, масса, скорость, прибыль и тому подобное), то регрессионный анализ дает аналитическое выра­жение, позволяющее рассчитать эти величины в промежутках между узловыми точками, оце­нить характер их изменения и даже предсказать с некоторой вероятностью их поведение за пре­делами исследуемого диапазона.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]