Documentaciónregresion_cubica(x, y)

regresion_cubica(x,y)\texttt{regresion\_cubica}(x, y)

Nombre

regresion_cubica - Ajusta un polinomio cubico a un conjunto de datos.

Sinopsis

v = estadisticas.regresion_cubica(x, y)

Descripcion

Calcula los coeficientes de un polinomio de tercer grado que aproxima los datos de entrada.

Formula:

y=ax3+bx2+cx+dy = ax^3 + bx^2 + cx + d

Validaciones y casos borde

  • Requiere vectores x e y no vacios, de igual dimension y con al menos cuatro puntos.
  • Si alguna de esas condiciones falla, emite ERROR().

Comportamiento

  • Construye y resuelve el sistema normal asociado al ajuste cubico.
  • Retorna un VECTOR con los coeficientes a, b, c y d.

Funciones API relacionadas

  • estadisticas.regresion_ab()
  • estadisticas.regresion_abr()
  • estadisticas.r2_lineal()

Parámetros

ParámetroTipoDescripción
xVECTORValores de x.
yVECTORValores de y.

Valor de retorno

VECTOR - VECTOR con los coeficientes a, b, c y d.

Ejemplo

ejemplo.blox
INCLUIR "vectores.api"   
INCLUIR "matrices.api"
INCLUIR "estadisticas.api"
INCLUIR "graficos.api"
INCLUIR "gauss.api"

FUNCION PRINCIPAL
INICIO "Dispersion / Regresion"

   STRING f
   NUMERICO puntos, k, x_min, x_max
   
   puntos = 15
   x_min = 0
   x_max = 15


   // Serie1 - Dispersion Inicial 
   //
   VECTOR xs[puntos], ys[puntos]
   xs = vectores.linspace(puntos, x_min, x_max)   
   ys = [10, 15, 12, 7, 12, 9, 7, 9, 5, 12, 7, 30, 20, 40, 45]


   // 1. Calculo de Regresion cubica abcd. Para a + b x + c x^2 + d x^3
   //
      VECTOR abcd[2]
      abcd = estadisticas.regresion_cubica(xs, ys)
      NUMERICO a, b, c, d
      a = abcd[0]
      b = abcd[1]
      c = abcd[2]
      d = abcd[3]

      // Serie2 - Montaje de la Curva ajustada yfit = a + b x + c x^2 + d x^3
      //
      VECTOR yfit[puntos]
      yfit = MIENTRAS (k < puntos) SI (k < puntos) VALOR a + b*xs[k] + c*xs[k]^2 + d*xs[k]^3 SINO 0



   // 2. Calculo de Regression Lineal abr = [a,b,r2]
   //
      VECTOR ab[2]
      ab = estadisticas.regresion_abr(xs, ys)
      a = ab[0]
      b = ab[1]


      // Serie3 - Montaje de la Recta ajustada ylin = a + b x 
      //
      VECTOR ylin[puntos]
      ylin = MIENTRAS (k < puntos) SI (k < puntos) VALOR a + b*xs[k] SINO 0



   // 3. Preparacion del grafico
   //
      TABLA curvas
      STRING archivo, titulo
      STRING color[3]

      color[1] = graficos.color("negro")
      color[2] = graficos.color("azul")
      color[3] = graficos.color("naranja")


      titulo = "Regresion Lineal y Polinomial" + f 
      archivo = "PROG41 - GRAFICO - XY - regresion polinomial.png"

      curvas[1] = { X = xs, 
                    Y = ys,
                    tipo = "dispersion"
                    nombre = "Datos",
                    color = color[1]
      }

      curvas[2] = { X = xs,
                    Y = ylin,
                    tipo = "xy"
                    nombre = "RLineal",
                    color = color[2]
      }  

      curvas[3] = { X = xs,
                    Y = yfit,
                    tipo = "xy"
                    nombre = "RPoli.",
                    color = color[3]
      } 
  

      graficos.graficar_trayectorias_n(curvas, titulo, archivo)

 
FINAL```