RE:Obtención de ecuación a partir de puntos experi
Lo que quieres hacer no es sencillo. Me temo que vas a batallar un rato si no estás familiarizado con la instrucción fminsearch o similares...
Te sugiero que primero veas la descripción de fminsearch, para entender todos los parámetros que puede tener (son muchos, no es trivial).
fminsearch la llamarías desde el programa principal, posiblemente así:
[x_opt, FunVal, EF, output] = fminsearch('OF_fun', x0, options);
o, lo mínimo sería así:
[x_opt] = fminsearch('OF_fun', x0);
En donde :
x_opt es tu vector óptimo (la solución a, b, c)
FunVal, EF, output son valores que te da fminsearch para verificar qué tan bien terminó la minimización. Puede que no haya convergido a un buen valor y así te lo indica. Tienes que estar consciente de que lo más probable es que haya muchas soluciones.
OF_fun es la función objetivo, que está definida en un archivo m.
x0 es el vector de arranque. Son los valores iniciales que das a a, b y c.
x0 = [a0 b0 c0].
options son valores que defines con la instrucción optimset. Se puede afinar la búsqueda de fminsearch. Puede ser que inicialmente no lo necesites, pero la respuesta cambia si cambias las tolerancias de búsqueda (que se definen con optimset).
La función OF_fun la tienes que definir posiblemente así:
function OFValue = OF_fun(x)
a = x(1);
b = x(2);
c = x(3);
% Ref es tu referencia, los puntos que ya tienes y contra los que vas a comparar
Ref_x = [x1 x2 x3 ...];
Ref_y = [y1 y2 y3 ...];
% Aquí evalúas la función, con los parámetros a, b y c, que fminsearch actualiza en
% cada iteración
fun_y = a - ((Ref_x).^c) / b;
% Sacas la diferencia (vector de error) y la normalizas para retroalimentar a
% fminsearch y evaluar qué tan bien va el algoritmo
OFValue = norm(Ref_y - fun_y, 1);
fminsearch encuentra los valores de a, b y c que hacen que |Ref_y - fun_y| sea el mínimo posible. Esto significa que se busca que tu función (con a, b y c) sea lo más parecido a Ref_y.
Este es el concepto general. Lo vas a tener que perfeccionar para tu caso.
Suerte!