Функции > Анализ данных > Аппроксимация кривой > Пример. Регрессия рациональной функции 1
Пример. Регрессия рациональной функции 1
rationalfit
Используйте функцию rationalfit для аппроксимации данных рациональным полиномом.
1. Задайте набор данных.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Этот набор данных получен в исследовании подвижности электронов в полупроводниках, проведенном NIST. Независимая переменная vx является натуральным логарифмом плотности. Переменная отклика vy является показателем подвижности электронов.
2. Задайте порядок числителя и знаменателя рациональной функции.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Аппроксимирующая функция имеет следующую форму:
Щелкните для копирования этого выражения
3. Задайте границу доверительного интервала.
Щелкните для копирования этого выражения
4. Вызовите функцию rationalfit.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Первый столбец выводимых данных содержит значения параметров. Второй и третий столбцы содержат, соответственно, выходные значения для нижней и верхней границ доверительного интервала.
5. Сравните значения параметров с правильными значениями, приведенными на Web-сайте NIST.
Щелкните для копирования этого выражения Щелкните для копирования этого выражения
6. Постройте графики данных, регрессии рациональной функции и аппроксимации, определенной параметрами NIST.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Аппроксимация с помощью регрессии рациональной функции практически идеальна, что подтверждается коэффициентом корреляции:
Щелкните для копирования этого выражения
График невязки
Постройте график невязки для визуальной оценки степени согласия регрессии.
1. Определите степень свободы.
Щелкните для копирования этого выражения
2. Вычислите невязки.
Щелкните для копирования этого выражения
3. Вычислите сумму квадратов невязок.
Щелкните для копирования этого выражения
4. Вычислите среднеквадратическое отклонение.
Щелкните для копирования этого выражения
5. Повторите шаги 2-4 со значениями, взятыми с веб-сайта NIST.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Сравните результаты для двух аппроксимаций.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
7. Постройте график точек данных и невязок.
Щелкните для копирования этого выражения
Ограничения, среднеквадратическое отклонение и допуск
У функции rationalfit есть несколько необязательных аргументов: вектор среднеквадратического отклонения, матрица нижних и верхних границ, точность и параметр noscale. Любые из этих необязательных аргументов можно использовать по отдельности, но для первых трех аргументов, определенных выше, имеет значение порядок их задания.
1. Создайте матрицу нижних и верхних границ параметров.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Создайте вектор среднеквадратических отклонений для параметров.
Щелкните для копирования этого выражения
Если вектор среднеквадратических отклонений вводится в виде аргумента функции rationalfit, решатель минимизирует следующую функцию:
Щелкните для копирования этого выражения
Если среднеквадратическое отклонение для точки равно 0, для этой точки используется исходная функция, т. е. StdYi равно 1.
3. Задайте точность. Значение по умолчанию 10-7.
Щелкните для копирования этого выражения
4. 4. Вызовите функцию rationalfit. Сравните полученные значения параметров с правильными значениями на Web-сайте NIST.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Функция rationalfit автоматически масштабирует входные данные, поэтому точность может оставаться масштабно-инвариантной. Затем выходные параметры масштабируются в соответствии с исходными данными. В большинстве случаев это гарантирует достижение аппроксимации независимо от относительного масштаба входных данных. Если возникают трудности с достижением хорошей аппроксимации, можно добавить в конец списка аргументов строку “noscale” для отключения этой опции.
Было ли это полезно?