Contenido principal

Evaluar un ajuste de superficie

Este ejemplo muestra cómo trabajar con un ajuste de superficie.

Cargar datos y ajustar una superficie polinomial

load franke;
surffit = fit([x,y],z,'poly23','normalize','on')
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)

La salida muestra la ecuación modelo ajustada, los coeficientes ajustados y los intervalos de confianza para los coeficientes ajustados.

Representar el ajuste, datos, valores residuales y límites de predicción

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

Figure contains an axes object. The axes object contains 2 objects of type line, surface. One or more of the lines displays its values using only markers

Represente el ajuste de valores residuales.

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

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

Represente los límites de predicción del ajuste.

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

Figure contains an axes object. The axes object contains 4 objects of type line, surface. One or more of the lines displays its values using only markers

Evaluar el ajuste en un punto específico

Evalúe el ajuste en un punto específico definiendo un valor para x e y con esta fórmula: z = fittedmodel(x,y).

surffit(1000,0.5)
ans = 
0.5673

Evaluar los valores de ajuste en muchos puntos

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

    0.3771
    0.4064
    0.5331

Obtenga límites de predicción en dichos valores.

[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

Obtener la ecuación modelo

Indique el nombre del ajuste para mostrar la ecuación modelo, los coeficientes ajustados y los intervalos de confianza para los coeficientes ajustados.

surffit
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)

Para obtener solo la ecuación modelo, utilice 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'

Obtener nombres y valores de coeficiente

Especifique un coeficiente por su nombre.

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

Obtenga todos los nombres de coeficientes. Observe la ecuación de ajuste (por ejemplo, f(x,y) = p00 + p10*x...) para ver los términos del modelo para cada coeficiente.

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

Obtenga todos los valores de coeficientes.

coeffvalues(surffit)
ans = 1×9

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

Obtener los intervalos de confianza en los coeficientes

Utilizar los intervalos de confianza en los coeficientes resulta útil para evaluar y comparar ajustes. Los intervalos de confianza en los coeficientes determinan su precisión. Los límites muy separados indican incertidumbre. Si los límites presentan un cruce por cero para los coeficientes lineales, significa que no puede tener la certeza de que estos coeficientes difieran de cero. Si los términos de algunos modelos tienen coeficientes de cero, entonces no ayudarán con el ajuste.

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

Buscar métodos

Enumere todos los métodos que puede utilizar con el ajuste.

methods(surffit)
Methods for class sfit:

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

Para obtener más información sobre cómo usar un método de ajuste, consulte sfit.

Consulte también

| | |