русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Численное дифференцирование


Дата добавления: 2015-01-16; просмотров: 664; Нарушение авторских прав


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

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

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



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

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



<== предыдущая лекция | следующая лекция ==>
Программная реализация методов численного интегрирования | Обыкновенные дифференциальные уравнения (общие сведения)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.279 сек.