Аппроксимация нелинейных характеристик. Интерполяция
Аппроксимация нелинейной функции
x 0 /12 /6 /4 /3 5/12 /2
y 0,5 0,483 0,433 0,354 0,25 0,129 0
Так как интервал разбиения функции равен, то вычисляем следующие коэффициенты наклона соответствующих участков аппроксимируемой функции:
1. Построение блоков формирования отрезков аппроксимирующей функции
Формирование функции времени
Интервал изменения:
Время циклического перезапуска: T = 1c
Теперь смоделируем функцию:
Аппроксимация
Рисунок 3.1 - Схема решения уравнения
Рисунок 3.2 - Блок-схема формирования нелинейной функции
Таким образом, автоматически формируется левая часть уравнения. При этом условно считается, что старшая производная x// известна, поскольку члены правой части уравнения известны и могут быть подключены к входам У1 (рисунок 3.1). Операционный усилитель У3 выполняет роль инвертора сигнала +х. Для моделирования x// необходимо в схему ввести еще один підсумовуючий усилитель, на входы которого необходимо подать сигналы, которые моделируют правую часть уравнения (3.2).
Рассчитываются масштабы всех переменных с учетом того, что максимальная величина машинной переменной за абсолютной величиной равняется 10 В:
Mx = 10 / xmax; Mx/ = 10 / x/ max; Mx// = 10 / x //max;
My = 10 / ymax. (3.3)
Масштаб времени Mt = T / tmax = 1, поскольку моделирование задачи осуществляется в реальном масштабе времени.
Рассчитываются коэффициенты передачи по каждому входу интегрирующих усилителей.
Для усилителя У1 коэффициенты передачи находятся за формулами:
K11 = Mx/ b / (MyMt); K12 = Mx/ a2 / (MxMt);
K13 = Mx/ a1 / (MxMt). (3.4)
Для усилителя У2:
K21 = Mx/ / (Mx/ Mt), (3.5)
и для усилителя У3:
К31 = 1. (3.6)
Напряжения начальных условий вычисляются за формулами:
ux/ (0) = Mx/ x/ (0) (-1); ux(0)= Mxx(0) (+1). (3.7)
Правая часть уравнения (3.2) представлена нелинейной функцией, которая задается путем линейной аппроксимации. При этом необходимо проверять, чтобы погрешность аппроксимации не превышала заданную величину. Блок-схема формирования нелинейной функции представлена на рисунку 3.2.
Описание принципиальной схемы
Блок формирования функции времени (Ф) выполняется в виде одного (для формирования t) или двух последовательно соединенных (для формирования t2) интегрирующих усилителей с нулевыми начальными условиями.
В этом случае при подаче на вход первого интегратора сигнала U, на его выходе получим:
u1(t)= - K11 = - K11Et. (3.8)
Положив K11E=1, имеем u1(t)= t.
На выходе второго интегратора получим:
u2(t)= K21 = K11K21Et2 / 2 (3.9)
Положив K11K21E/2 = 1, имеем u2(t)= t2.
Блоки формирования отрезков аппроксимирующей функции реализуются в виде диодных блоков нелинейных функций (ДБНФ), входной величиной для которых является функция времени t или t2. Порядок расчета и построения ДБНФ приведенные в .
Сумматор (ГРУСТЬ) отрезков аппроксимирующей функции выполняется в виде дифференциального итогового усилителя.
Начальные условия для интеграторов моделирующей схемы вводятся с помощью узла с переменной структурой (рисунок 3.3). Эта схема может работать в двух режимах:
а) интегрирование - при положении ключа К в позиции 1. При этом исходный сигнал схемы с достаточной точностью описывается уравнением идеального интегратора:
u1(t)= - (1 / RC) . (3.10)
Этот режим используется при моделирование задачи. Для проверки правильности выбора параметров R и C интегратора проверяют величину исходного напряжения интегратора в функции времени и полезное время интегрирования в пределах допустимой ошибки?Uдоп.
Величина исходного напряжения интегратора
U(t)= - KYE {1 - e - Т / [(Ky+1)RC} (3.11)
за время моделирования Т при интегрировании входного сигнала E с использованием операционного усилителя с коэффициентом передачи Ky без цепи обратной связи не должна превышать значения машинной переменной (10 В).
Время интегрирования
Tи = 2RC(Kу + 1)?Uдоп (3.12)
при выбранных параметрах схемы не должен быть меньше, чем время моделирования Т.
б) задание начальных условий реализуется при переводі ключа К в положение 2. Этот режим используется при подготовке моделирующей схемы к процессу решения. При этом исходный сигнал схемы описывается уравнением:
u0(t)= - (R2 /R1) E (3.13)
где u0(t) - величина начальных условий.
С целью сокращения времени формирования начальных условий и обеспечение надежной работы, параметры схемы должны удовлетворять условие: R1C1 = R2C.
Построить полную расчетную схему. При этом следует пользоваться условными обозначениями, приведенными в подразделе 3.1.
Пользуясь разрядностью входных и исходных данных, построить принципиальные схемы блоков Б1 и Б2 и соединить их с блоком РС.
(Обратите внимание на дополнительный раздел от 04.06.2017 в конце статьи.)
Учет и контроль! Те, кому за 40 должны хорошо помнить этот лозунг из эпохи построения социализма и коммунизма в нашей стране.
Но без хорошо налаженного учета невозможно эффективное функционирование ни страны, ни области, ни предприятия, ни домашнего хозяйства при любой общественно-экономической формации общества! Для составления прогнозов и планов деятельности и развития необходимы исходные данные. Где их брать? Только один достоверный источник – это ваши статистические учетные данные предыдущих периодов времени.
Учитывать результаты своей деятельности, собирать и записывать информацию, обрабатывать и анализировать данные, применять результаты анализа для принятия правильных решений в будущем должен, в моем понимании, каждый здравомыслящий человек. Это есть ничто иное, как накопление и рациональное использование своего жизненного опыта. Если не вести учет важных данных, то вы через определенный период времени их забудете и, начав заниматься этими вопросами вновь, вы опять наделаете те же ошибки, что делали, когда впервые этим занимались.
«Мы, помню, 5 лет назад изготавливали до 1000 штук таких изделий в месяц, а сейчас и 700 еле-еле собираем!». Открываем статистику и видим, что 5 лет назад и 500 штук не изготавливали…
«Во сколько обходится километр пробега твоего автомобиля с учетом всех затрат?» Открываем статистику – 6 руб./км. Поездка на работу – 107 рублей. Дешевле, чем на такси (180 рублей) более чем в полтора раза. А бывали времена, когда на такси было дешевле…
«Сколько времени требуется для изготовления металлоконструкций уголковой башни связи высотой 50 м?» Открываем статистику – и через 5 минут готов ответ…
«Сколько будет стоить ремонт комнаты в квартире?» Поднимаем старые записи, делаем поправку на инфляцию за прошедшие годы, учитываем, что в прошлый раз купили материалы на 10% дешевле рыночной цены и – ориентировочную стоимость мы уже знаем…
Ведя учет своей профессиональной деятельности, вы всегда будете готовы ответить на вопрос начальника: «Когда!!!???». Ведя учет домашнего хозяйства, легче спланировать расходы на крупные покупки, отдых и прочие расходы в будущем, приняв соответствующие меры по дополнительному заработку или по сокращению необязательных расходов сегодня.
В этой статье я на простом примере покажу, как можно обрабатывать собранные статистические данные в Excel для возможности дальнейшего использования при прогнозировании будущих периодов.
Аппроксимация в Excel статистических данных аналитической функцией.
Производственный участок изготавливает строительные металлоконструкции из листового и профильного металлопроката. Участок работает стабильно, заказы однотипные, численность рабочих колеблется незначительно. Есть данные о выпуске продукции за предыдущие 12 месяцев и о количестве переработанного в эти периоды времени металлопроката по группам: листы, двутавры, швеллеры, уголки, трубы круглые, профили прямоугольного сечения, круглый прокат. После предварительного анализа исходных данных возникло предположение, что суммарный месячный выпуск металлоконструкций существенно зависит от количества уголков в заказах. Проверим это предположение.
Прежде всего, несколько слов об аппроксимации. Мы будем искать закон – аналитическую функцию, то есть функцию, заданную уравнением, которое лучше других описывает зависимость общего выпуска металлоконструкций от количества уголкового проката в выполненных заказах. Это и есть аппроксимация, а найденное уравнение называется аппроксимирующей функцией для исходной функции, заданной в виде таблицы.
1. Включаем Excel и помещаем на лист таблицу с данными статистики.
2. Далее строим и форматируем точечную диаграмму, в которой по оси X задаем значения аргумента – количество переработанных уголков в тоннах. По оси Y откладываем значения исходной функции – общий выпуск металлоконструкций в месяц, заданные таблицей.
3. «Наводим» мышь на любую из точек на графике и щелчком правой кнопки вызываем контекстное меню (как говорит один мой хороший товарищ — работая в незнакомой программе, когда не знаешь, что делать, чаще щелкай правой кнопкой мыши…). В выпавшем меню выбираем «Добавить линию тренда…».
4. В появившемся окне «Линия тренда» на вкладке «Тип» выбираем «Линейная».
6. На графике появилась прямая линия, аппроксимирующая нашу табличную зависимость.
Мы видим кроме самой линии уравнение этой линии и, главное, мы видим значение параметра R 2 – величины достоверности аппроксимации! Чем ближе его значение к 1, тем наиболее точно выбранная функция аппроксимирует табличные данные!
7. Строим линии тренда, используя степенную, логарифмическую, экспоненциальную и полиномиальную аппроксимации по аналогии с тем, как мы строили линейную линию тренда.
Лучше всех из выбранных функций аппроксимирует наши данные полином второй степени, у него максимальный коэффициент достоверности R 2 .
Однако хочу вас предостеречь! Если вы возьмете полиномы более высоких степеней, то, возможно, получите еще лучшие результаты, но кривые будут иметь замысловатый вид…. Здесь важно понимать, что мы ищем функцию, которая имеет физический смысл. Что это означает? Это означает, что нам нужна аппроксимирующая функция, которая будет выдавать адекватные результаты не только внутри рассматриваемого диапазона значений X, но и за его пределами, то есть ответит на вопрос: «Какой будет выпуск металлоконструкций при количестве переработанных за месяц уголков меньше 45 и больше 168 тонн!» Поэтому я не рекомендую увлекаться полиномами высоких степеней, да и параболу (полином второй степени) выбирать осторожно!
Итак, нам необходимо выбрать функцию, которая не только хорошо интерполирует табличные данные в пределах диапазона значений X=45…168, но и допускает адекватную экстраполяцию за пределами этого диапазона. Я выбираю в данном случае логарифмическую функцию, хотя можно выбрать и линейную, как наиболее простую. В рассматриваемом примере при выборе линейной аппроксимации в excel ошибки будут больше, чем при выборе логарифмической, но не на много.
8. Удаляем все линии тренда с поля диаграммы, кроме логарифмической функции. Для этого щелкаем правой кнопкой мыши по ненужным линиям и в выпавшем контекстном меню выбираем «Очистить».
9. В завершении добавим к точкам табличных данных планки погрешностей. Для этого правой кнопкой мыши щелкаем на любой из точек на графике и в контекстном меню выбираем «Формат рядов данных…» и настраиваем данные на вкладке «Y-погрешности» так, как на рисунке ниже.
10. Затем щелкаем по любой из линий диапазонов погрешностей правой кнопкой мыши, выбираем в контекстном меню «Формат полос погрешностей…» и в окне «Формат планок погрешностей» на вкладке «Вид» настраиваем цвет и толщину линий.
Аналогичным образом форматируются любые другие объекты диаграммы в Excel !
Окончательный результат диаграммы представлен на следующем снимке экрана.
Итоги.
Результатом всех предыдущих действий стала полученная формула аппроксимирующей функции y=-172,01*ln (x)+1188,2. Зная ее, и количество уголков в месячном наборе работ, можно с высокой степенью вероятности (±4% — смотри планки погрешностей) спрогнозировать общий выпуск металлоконструкций за месяц! Например, если в плане на месяц 140 тонн уголков, то общий выпуск, скорее всего, при прочих равных составит 338±14 тонн.
Для повышения достоверности аппроксимации статистических данных должно быть много. Двенадцать пар значений – это маловато.
Из практики скажу, что хорошим результатом следует считать нахождение аппроксимирующей функции с коэффициентом достоверности R 2 >0,87. Отличный результат – при R 2 >0,94.
На практике бывает трудно выделить один самый главный определяющий фактор (в нашем примере – масса переработанных за месяц уголков), но если постараться, то в каждой конкретной задаче его всегда можно найти! Конечно, общий выпуск продукции за месяц реально зависит от сотни факторов, для учета которых необходимы существенные трудозатраты нормировщиков и других специалистов. Только результат все равно будет приблизительным! Так стоит ли нести затраты, если есть гораздо более дешевое математическое моделирование!
В этой статье я лишь прикоснулся к верхушке айсберга под названием сбор, обработка и практическое использование статистических данных. О том удалось, или нет, мне расшевелить ваш интерес к этой теме, надеюсь узнать из комментариев и рейтинга статьи в поисковиках.
Затронутый вопрос аппроксимации функции одной переменной имеет широкое практическое применение в разных сферах жизни. Но гораздо большее применение имеет решение задачи аппроксимации функции нескольких независимых переменных…. Об этом и не только читайте в следующих статьях на блоге.
Подписывайтесь на анонсы статей в окне, расположенном в конце каждой статьи или в окне вверху страницы.
Не забывайте подтверждать подписку кликом по ссылке в письме, которое придет к вам на указанную почту (может прийти в папку « Спам» )!!!
С интересом прочту Ваши комментарии, уважаемые читатели! Пишите!
P.S. (04.06.2017)
Высокоточная красивая замена табличных данных простым уравнением.
Вас не устраивают полученные точность аппроксимации (R 2 <0,95) или вид и набор функций, предлагаемые MS Excel?
Размеры выражения и форма линии аппроксимирующего полинома высокой степени не радует глаз?
Обращайтесь через страницу « » для получения более точного и компактного результата аппроксимации ваших табличных данных и для того, чтобы узнать простую методику решения задач высокоточной аппроксимации функцией одной переменной.
При использовании предлагаемого алгоритма действий найдена весьма компактная функция, обеспечивающая высочайшую точность аппроксимации: R 2 =0,9963!!!
Линейная, особенно линейная полиномиальная, аппроксимация часто не соответствует характеру функции. Например, многочлен высокой степени быстро растет при поэтому даже несложную функцию многочлен плохо аппроксимирует на большом отрезке. Поскольку аппроксимация проводится в широком интервале изменения аргумента, использование нелинейной зависимости от коэффициентов здесь ещё выгодней, чем при интерполяции.
На практике используют два вида зависимости. Один - квазилинейная зависимость, сводящаяся выравнивающей заменой переменных к линейной, которая подробно изучена в предыдущих пунктах. Этот способ очень эффективен и часто используется при обработке эксперимента, ибо априорные сведения о физике процесса помогают найти хорошую замену переменных. Надо только иметь в виду, что приближение, наилучшее в новых переменных, не будет наилучшим в смысле скалярного произведения в старых переменных. Поэтому на выбор веса в новых переменных надо обращать особое внимание.
Классический пример - задача о радиоактивном распаде облученного образца, в которой удобны переменные и t, где - скорость распада. В этих переменных кривая обычно аппроксимируется ломаной, звенья которой соответствуют распаду все более долгоживущих членов радиоактивного ряда.
Другой употребительный вид зависимости от коэффициентов - дробно-линейная, когда аппроксимирующая функция рациональна:
Нередко используется и отношение обобщенных многочленов. Такая аппроксимация позволяет передать полюсы функции - им соответствуют нули знаменателя требуемой кратности. Зачастую можно воспроизвести асимптотическое поведение при за счет соответствующего выбора величины например, если , то надо положить . При этом сами можно брать достаточно большими, чтобы располагать многими коэффициентами аппроксимации.
Однако квадрат погрешности уже не будет квадратичной функцией коэффициентов, так что найти коэффициенты рациональной функции нелегко. Можно по аналогии со среднеквадратичной аппроксимацией многочленами выдвинуть гипотезу, что погрешность имеет на число нулей, не меньшее числа свободных коэффициентов (сравните с замечанием 3 в п. 2). Тогда задача сводится к лагранжевой интерполяции по этим нулям и коэффициенты находятся из системы линейных уравнений:
Разумеется, точное положение нулей неизвестно; их выбирают произвольно, обычно равномерно распределяя на отрезке . Этот способ называют методом выбранных точек. Полученное этим методом приближение вовсе не будет наилучшим.
Кроме того, метод выбранных точек неразумен, как и всякая интерполяция, если имеют заметную погрешность.
Наилучшее приближение можно найти методом итерированного веса. Заметим, что задача
легко решается: стоящее слева выражение есть квадратичная функция коэффициентов и дифференцирование по ним приводит к линейной системе для определения коэффициентов, сходной с (38). Новая задача отличается от исходной по существу тем, что вместо веса используется другой вес поэтому ее решение не является наилучшим приближением. Запишем исходную задачу в новой форме:
и будем решать ее простым итерационным процессом
за нулевое приближение можно взять . На каждой итерации вес известен по предыдущей итерации, поэтому коэффициенты легко находятся из условия минимума квадратичной формы. Практика показывает, что коэффициенты наилучшего приближения слабо зависят от выбора веса, поэтому обычно итерации сходятся быстро.
а) Рассмотрим некоторые примеры аппроксимации рациональной функцией. Положим
заменяя два первых члена ряда дробью, получим . Эта несложная формула обеспечивает точность при и очень удобна для оценок.
б) В теории вероятностей важную роль играет интеграл ошибок для которого известны разложения в ряды:
Первый ряд абсолютно сходится, но при сходимость очень медленная; второй ряд сходится асимптотически при больших значениях . Заменяя первые члены каждого ряда дробями, получим
В указанных диапазонах изменения аргумента погрешность первой формулы не превышает 0,4%, а погрешность второй формулы -2,4%. Таким образом, точность этих аппроксимаций вполне достаточна для многих 1 практических приложений.
в) Положим при . Эта функция монотонна, причем при Легко построить дробь
Среди различных методов прогнозирования нельзя не выделить аппроксимацию. С её помощью можно производить приблизительные подсчеты и вычислять планируемые показатели, путем замены исходных объектов на более простые. В Экселе тоже существует возможность использования данного метода для прогнозирования и анализа. Давайте рассмотрим, как этот метод можно применить в указанной программе встроенными инструментами.
Наименование данного метода происходит от латинского слова proxima – «ближайшая» Именно приближение путем упрощения и сглаживания известных показателей, выстраивание их в тенденцию и является его основой. Но данный метод можно использовать не только для прогнозирования, но и для исследования уже имеющихся результатов. Ведь аппроксимация является, по сути, упрощением исходных данных, а упрощенный вариант исследовать легче.
Главный инструмент, с помощью которого проводится сглаживания в Excel – это построение линии тренда. Суть состоит в том, что на основе уже имеющихся показателей достраивается график функции на будущие периоды. Основное предназначение линии тренда, как не трудно догадаться, это составление прогнозов или выявление общей тенденции.
Но она может быть построена с применением одного из пяти видов аппроксимации:
- Линейной;
- Экспоненциальной;
- Логарифмической;
- Полиномиальной;
- Степенной.
Рассмотрим каждый из вариантов более подробно в отдельности.
Способ 1: линейное сглаживание
Прежде всего, давайте рассмотрим самый простой вариант аппроксимации, а именно с помощью линейной функции. На нем мы остановимся подробнее всего, так как изложим общие моменты характерные и для других способов, а именно построение графика и некоторые другие нюансы, на которых при рассмотрении последующих вариантов уже останавливаться не будем.
Прежде всего, построим график, на основании которого будем проводить процедуру сглаживания. Для построения графика возьмем таблицу, в которой помесячно указана себестоимость единицы продукции, производимой предприятием, и соответствующая прибыль в данном периоде. Графическая функция, которую мы построим, будет отображать зависимость увеличения прибыли от уменьшения себестоимости продукции.
Сглаживание, которое используется в данном случае, описывается следующей формулой:
В конкретно нашем случае формула принимает такой вид:
y=-0,1156x+72,255
Величина достоверности аппроксимации у нас равна 0,9418 , что является довольно приемлемым итогом, характеризующим сглаживание, как достоверное.
Способ 2: экспоненциальная аппроксимация
Теперь давайте рассмотрим экспоненциальный тип аппроксимации в Эксель.
Общий вид функции сглаживания при этом такой:
где e – это основание натурального логарифма.
В конкретно нашем случае формула приняла следующую форму:
y=6282,7*e^(-0,012*x)
Способ 3: логарифмическое сглаживание
Теперь настала очередь рассмотреть метод логарифмической аппроксимации.
В общем виде формула сглаживания выглядит так:
где ln – это величина натурального логарифма. Отсюда и наименование метода.
В нашем случае формула принимает следующий вид:
y=-62,81ln(x)+404,96
Способ 4: полиномиальное сглаживание
Настал черед рассмотреть метод полиномиального сглаживания.
Формула, которая описывает данный тип сглаживания, приняла следующий вид:
y=8E-08x^6-0,0003x^5+0,3725x^4-269,33x^3+109525x^2-2E+07x+2E+09
Способ 5: степенное сглаживание
В завершении рассмотрим метод степенной аппроксимации в Excel.
Данный способ эффективно используется в случаях интенсивного изменения данных функции. Важно учесть, что этот вариант применим только при условии, что функция и аргумент не принимают отрицательных или нулевых значений.
Общая формула, описывающая данный метод имеет такой вид:
В конкретно нашем случае она выглядит так:
y = 6E+18x^(-6,512)
Как видим, при использовании конкретных данных, которые мы применяли для примера, наибольший уровень достоверности показал метод полиномиальной аппроксимации с полиномом в шестой степени (0,9844 ), наименьший уровень достоверности у линейного метода (0,9418 ). Но это совсем не значит, что такая же тенденция будет при использовании других примеров. Нет, уровень эффективности у приведенных выше методов может значительно отличаться, в зависимости от конкретного вида функции, для которой будет строиться линия тренда. Поэтому, если для этой функции выбранный метод наиболее эффективен, то это совсем не означает, что он также будет оптимальным и в другой ситуации.
Если вы пока не можете сразу определить, основываясь на вышеприведенных рекомендациях, какой вид аппроксимации подойдет конкретно в вашем случае, то есть смысл попробовать все методы. После построения линии тренда и просмотра её уровня достоверности можно будет выбрать оптимальный вариант.