Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Нелинейная регрессия может принять любой тип отношения между зависимой переменной y и независимыми переменными x j. Для нелинейной регрессии MuPAD® обеспечивает stats::reg функция. Эта функция использует подход наименьших квадратов в вычислении регрессии. stats::reg выбирает параметры p 1, ..., p n путем попытки минимизировать квадратичную ошибку:
.
Здесь x ij является iизмерение th независимой переменной x j. stats::reg функция также может выполнить метод взвешенных наименьших квадратов нелинейная регрессия. По умолчанию веса равны 1.
stats::reg возвращает список оптимизированных параметров [p 1, ..., p n] и минимизированное значение квадратичной ошибки для заданной модели. Предположим, вы хотите найти модель для следующих данных:
sampleX := [1, 2, 3, 4, 5, 6, 7, 8, 9]:
sampleY := [36.97666099, 54.14911101, 131.3852077,
30.43939553, 202.2004454, 129.5801972,
321.0663718, 411.3959961, 929.597986]:Отображение на графике данных может помочь вам выбрать модель:
plot1 := plot::Scatterplot(sampleX, sampleY,
LinesVisible = FALSE):
plot(plot1)
График рассеивания ясно показывает, что линейные модели не соответствуют данным. Зависимость выглядит похожей на экспоненциал. Поэтому можно попытаться соответствовать данным к различным моделям, включающим показательные функции. Предположим, вы хотите попробовать подгонку данных к выражению
:
fit := stats::reg(sampleX, sampleY, p1 + p2^2*exp(x1)/x1,
[x1], [p1, p2])![]()
stats::reg функция возвращает параметры модели и квадратичной ошибки как вложенный список. Чтобы получить доступ к параметрам отдельно, используйте следующие команды:
a := fit[1][1]; b := fit[1][2]; chi2 := fit[2]
![]()
![]()
![]()
Теперь отобразите на графике данные и выражение, что вы раньше соответствовали данным по тому же графику. Этот график показывает, как выражение модели соответствует данным:
plot2 := plot::Function2d(a + b^2*exp(x)/x, x = 1..9): plot(plot1, plot2)
