exponenta event banner

Оценка посадки поверхности

В этом примере показано, как работать с посадкой поверхности.

Загрузить данные и подогнать полиномиальную поверхность

load franke;
surffit = fit([x,y],z,'poly23','normalize','on')
     Linear model Poly23:
     surffit(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y 
                    + p12*x*y^2 + p03*y^3
       where x is normalized by mean 1982 and std 868.6
       and where y is normalized by mean 0.4972 and std 0.2897
     Coefficients (with 95% confidence bounds):
       p00 =      0.4253  (0.3928, 0.4578)
       p10 =      -0.106  (-0.1322, -0.07974)
       p01 =     -0.4299  (-0.4775, -0.3822)
       p20 =     0.02104  (0.001457, 0.04062)
       p11 =     0.07153  (0.05409, 0.08898)
       p02 =    -0.03084  (-0.05039, -0.01129)
       p21 =     0.02091  (0.001372, 0.04044)
       p12 =     -0.0321  (-0.05164, -0.01255)
       p03 =      0.1216  (0.09929, 0.1439)

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

Печать границ посадки, данных, остатков и прогнозирования

plot(surffit,[x,y],z)

Figure contains an axes. The axes contains 2 objects of type surface, line.

Постройте график соответствия остатков.

plot(surffit,[x,y],z,'Style','Residuals')

Figure contains an axes. The axes contains 2 objects of type patch, stem.

Границы прогнозирования графика по посадке.

plot(surffit,[x,y],z,'Style','predfunc')

Figure contains an axes. The axes contains 4 objects of type surface, line.

Вычислить вписывание в заданной точке

Вычислить вписывание в определенной точке, указав значение для x и y , используя эту форму: z = fittedmodel(x,y).

surffit(1000,0.5)
ans = 0.5673

Оценка значений вписывания во многих точках

xi = [500;1000;1200];
yi = [0.7;0.6;0.5];
surffit(xi,yi)
ans = 3×1

    0.3771
    0.4064
    0.5331

Получить границы прогнозирования для этих значений.

[ci, zi] = predint(surffit,[xi,yi])
ci = 3×2

    0.0713    0.6829
    0.1058    0.7069
    0.2333    0.8330

zi = 3×1

    0.3771
    0.4064
    0.5331

Получение уравнения модели

Введите имя подгонки для отображения уравнения модели, коэффициентов подгонки и доверительных границ для коэффициентов подгонки.

surffit
     Linear model Poly23:
     surffit(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y 
                    + p12*x*y^2 + p03*y^3
       where x is normalized by mean 1982 and std 868.6
       and where y is normalized by mean 0.4972 and std 0.2897
     Coefficients (with 95% confidence bounds):
       p00 =      0.4253  (0.3928, 0.4578)
       p10 =      -0.106  (-0.1322, -0.07974)
       p01 =     -0.4299  (-0.4775, -0.3822)
       p20 =     0.02104  (0.001457, 0.04062)
       p11 =     0.07153  (0.05409, 0.08898)
       p02 =    -0.03084  (-0.05039, -0.01129)
       p21 =     0.02091  (0.001372, 0.04044)
       p12 =     -0.0321  (-0.05164, -0.01255)
       p03 =      0.1216  (0.09929, 0.1439)

Чтобы получить только уравнение модели, используйте formula.

formula(surffit)
ans = 
'p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3'

Получение имен и значений коэффициентов

Укажите коэффициент по имени.

p00 = surffit.p00
p00 = 0.4253
p03 = surffit.p03
p03 = 0.1216

Получить все имена коэффициентов. Посмотрите на уравнение посадки (например, f(x,y) = p00 + p10*x...), чтобы увидеть модельные термины для каждого коэффициента.

coeffnames(surffit)
ans = 9x1 cell
    {'p00'}
    {'p10'}
    {'p01'}
    {'p20'}
    {'p11'}
    {'p02'}
    {'p21'}
    {'p12'}
    {'p03'}

Получить все значения коэффициентов.

coeffvalues(surffit)
ans = 1×9

    0.4253   -0.1060   -0.4299    0.0210    0.0715   -0.0308    0.0209   -0.0321    0.1216

Получение доверительных границ по коэффициентам

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

confint(surffit)
ans = 2×9

    0.3928   -0.1322   -0.4775    0.0015    0.0541   -0.0504    0.0014   -0.0516    0.0993
    0.4578   -0.0797   -0.3822    0.0406    0.0890   -0.0113    0.0404   -0.0126    0.1439

Поиск методов

Перечислите все методы, которые можно использовать с посадкой.

methods(surffit)
Methods for class sfit:

argnames       dependnames    indepnames     predint        sfit           
category       differentiate  islinear       probnames      type           
coeffnames     feval          numargs        probvalues     
coeffvalues    fitoptions     numcoeffs      quad2d         
confint        formula        plot           setoptions     

Используйте help для получения информации об использовании метода подгонки.

help sfit/quad2d
 QUAD2D  Numerically integrate a surface fit object.
    Q = QUAD2D(FO, A, B, C, D) approximates the integral of the surface fit
    object FO over the planar region A <= x <= B and C(x) <= y <= D(x). C and D
    may each be a scalar, a function handle or a curve fit (CFIT) object.
 
    [Q,ERRBND] = QUAD2D(...) also returns an approximate upper bound on the
    absolute error, ERRBND.
 
    [Q,ERRBND] = QUAD2D(FUN,A,B,C,D,PARAM1,VAL1,PARAM2,VAL2,...) performs
    the integration with specified values of optional parameters. 
 
    See QUAD2D for details of the upper bound and the optional parameters. 
      
    See also: QUAD2D, FIT, SFIT, CFIT.

    Documentation for sfit/quad2d
       doc sfit/quad2d