Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Функция stats::reg
также выполняет линейные и нелинейные регрессии с двумя или больше независимыми переменными. Следующий пример демонстрирует, как выполнить регрессию и соответствовать данным к функции двух переменных. Предположим, у вас есть три списка данных, которые содержат, координирует x
, y
и z
дискретных точек:
sampleX := [ -0.9612553839, -0.329576986, 0.7544749248, 0.7339191669, -0.294101483, -0.9809519422, -0.6251624775, -0.1885706545, 0.4729466504, 0.4402179092, -0.1883574567, -0.6260246367, -0.0274947885, -0.01843922645, -0.02687538212, -0.03682895886, -0.009212115975, -0.04956242636]: sampleY := [ -0.02185415496, -0.9146217269, -0.5792023459, 0.5440822742, 0.8848317212, -0.03925037966, -0.02360776024, -0.5657632266, -0.3461422332, 0.3429495709, 0.5113552882, -0.02089004809, -0.03700165982, -0.0226531849, -0.004897297126, -0.03063832565, -0.03469956571, -0.01391540741]: sampleZ := [ 0.2755344332, 0.272077192, 0.2682296712, 0.2915713541, 0.2737466882, 0.3060314064, 0.7624231851, 0.8013891042, 0.7755723041, 0.7631156115, 0.7816602999, 0.7807856826, 0.9679031724, 0.9661527172, 0.9632260164, 0.986479402, 0.9554368723, 0.9768285979]:
Предположим, вы хотите найти поверхность, которая соответствует этим точкам. Запустите с отображения на графике данных. Функция plot::PointList3d
, которая строит конечное число дискретных точек, требует, чтобы координаты каждой точки группировались. Следующие команды создают отдельные списки для координат каждой точки: [x i, y i, z i] и помещенный эти списки в один вложенный список:
points := [[sampleX[i], sampleY[i], sampleZ[i]] $ i = 1..nops(sampleX)]:
Теперь, используйте функцию plot::PointList3d
, чтобы визуализировать данные:
plot1 := plot::PointList3d(points, PointSize = 2.5): plot(plot1)
Вращение графика может помочь вам предположить, какая поверхность может возможно соответствовать данным. Этот график показывает, что данные могут принадлежать верхней половине сферы. Таким образом попытайтесь соответствовать данным к сфере с неизвестным радиусом r
. Функция stats::reg
ищет значение оптимальной подгонки для параметра r
:
fit := stats::reg(sampleX, sampleY, sampleZ, sqrt(r^2 - x1^2 - y1^2), [x1, y1], [r])
Функция stats::reg
также принимает вложенный список points
:
fit := stats::reg(points, sqrt(r^2 - x1^2 - y1^2), [x1, y1], [r])
Функция stats::reg
возвращает параметры модели и квадратичной ошибки в форме вложенного списка. Чтобы получить доступ к параметрам отдельно, используйте следующие команды:
R := op(fit)[1][1]; chi2 := op(fit)[2]
Теперь, отобразите на графике данные и сферу, что вы раньше соответствовали данным по тому же графику. Вращайте график, чтобы видеть, как сфера соответствует данным:
plot2 := plot::Function3d(sqrt(R^2 - x^2 - y^2), x = -1..1, y = -1..1): plot(plot1, plot2)