Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Es urgente encontrar el código fuente de la función payfit en matlab! Parece que mi caja de herramientas de Matlab (versión 2007b) está incompleta y no hay ninguna función Polyfit ~.

¡Es urgente encontrar el código fuente de la función payfit en matlab! Parece que mi caja de herramientas de Matlab (versión 2007b) está incompleta y no hay ninguna función Polyfit ~.

función [p, S, mu] = polyfit(x, y, n)

POLYFIT ajusta un polinomio a los datos.

P = POLYFIT(X, Y, N) encuentra el coeficiente del polinomio P(X) de grado N que mejor se ajusta a los datos Y en el sentido de mínimos cuadrados. P es un vector fila de longitud N 1

, que contiene coeficientes polinomiales que disminuyen según la potencia de los datos

, P(1)*X^N P(2)*X ^(norte -1) ... P(norte)*X P(norte 1).

[P, S] = POLYFIT(X, Y, N) devuelve los coeficientes polinomiales P y una

estructura S para usar con POLYVAL, Obtener

la estimación del error del pronóstico. S contiene campos para los factores triangulares (R), grados de libertad (df) y norma residual (normr) de la descomposición QR de la matriz de Vandermonde de X. Si los datos Y son aleatorios,

El valor estimado de la matriz de covarianza de P es (Rinv*Rinv')*normr^2/df,

donde Rinv es el recíproco de R

[Rinv*Rinv')*normr^2/df,

donde Rinv es el recíproco de R.

[P, S, MU] = POLYFIT(X, Y, N) encuentra los coeficientes del polinomio

XHAT = (X-MU(1))/MU(2 ) donde MU(1) = MEDIA(X), MU(2) = STD(X). Esta

transformación de centrado y escala mejora las propiedades numéricas

de los algoritmos polinómicos y de ajuste. p>

Si N es gt; = length(X), aparecerá una advertencia si X tiene puntos duplicados o

casi duplicados, o si es posible que sea necesario centrar y escalar X. información.

Las entradas X e Y admitidas por la clase son:

Número de coma flotante: doble, simple

Ver POLI, POLIVAL, RAÍCES, LSCOV. > Copyright 1984-2008 The MathWorks, Inc.

$Revisión: 5.17.4.10 $ $Fecha: 2008/06/20 08:00:56 $

Problema de regresión en formato matricial Expresado de la siguiente manera:

y = V*p o

3 2

y = [ x x x 1] [p3

p2

p1

p0]

donde el vector p contiene el coeficiente. Para un polinomio

de orden 7, la matriz V será:

V = [x.^7 x.^6 x.^5 x .^ 4 x.^3 x. ^2 x unos(tamaño(x))];

if ~isequal(tamaño(x), tamaño(y))

error (' MATLAB:polyfit:XYSizeMismatch',...

'Los vectores X e Y deben tener el mismo tamaño.

')

fin

x = x(:);

y = y(:);

mu = [media(x); estándar(x)];

x = (x - mu(1))/mu(2); >fin

Construya la matriz de Vandermonde.

V(:, n 1) = unos(longitud(x), 1, clase(x)

para j = n:-1:1

V(:,j) = x.*V(:,j 1);

fin

Resuelve el problema de mínimos cuadrados.

[Q, R] = qr(V, 0);

ws = advertencia('apagado', 'todos'); \( Q'*y); Igual que p = V\y;

advertencia(ws

if tamaño(R, 2) gt;

advertencia('MATLAB: polyfit: PolyNotUnique', ...

'El polinomio no es único; grado >= número de puntos de datos.')

elseif warnIfLargeConditionNumber(R)

if nargout gt; 2

advertencia('MATLAB: polyfit: RepeatedPoints', ...

['El polinomio está mal condicionado. Sumar con puntos con diferente poliajuste: RepeatedPointsOrRescale', ...

['El polinomio está mal condicionado. Agregue puntos con diferentes valores de X\n', reduzca el grado del polinomio o intente centrar/n'...

' y escale como se describe en AYUDA POLYFIT.']);

end

end

r = y - V*p ;

p = p.'; Los coeficientes polinómicos son por convención vectores fila.

S es una estructura de tres elementos: Norma de factores triangulares, grados de libertad y residuos de Vandermonde. Descomposición QR de matriz de coeficientes

función flag = warnIfLargeConditionNumber(R)

if isa(R, 'double')

flag = (condest(R) gt ; 1e 10);

else

bandera = (condest(R) gt; 1e 05

fin

);