genetic algorithm for curve fitting
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Proman
el 28 de Jun. de 2020
Comentada: Star Strider
el 28 de Jun. de 2020
Hello Everyone
I want to Fit a curve (called MFit) on another curve (called M)
MFit is a function and defined by the following relation:
MFit = M0 + c0 * (h * z - log(z - z0 / z0))
and M is a 100-element vector. I want to fit MFit on M by choosing the right value of c0. z is a 100-element vector and M0,h and z0 are constants. What I have in mind is to define a target function as
Fun1 = abs(M - MFit)
so that by minimzing it, MFit will be fit. This is my proposed method:
MFit = @(c0) (M0 + c0 * (z - h * log((z + z0) / z0)));
Fun1 = @(c0) abs(M - MFit);
rng default
C0 = ga(Fun1,1);
but things go wrong when I run the code. Can anybody help me how I may solve this problem with genetic algorithm?
0 comentarios
Respuesta aceptada
Star Strider
el 28 de Jun. de 2020
I would do something like this (with ‘M’ and the constants already existing in your workspace):
MFit = @(c0,M0,h,z,z0) (M0 + c0 * (z - h * log((z + z0) / z0)));
Fun1 = @(c0) norm(M - MFit(c0,M0,h,z,z0));
c0_est = ga(Fun1, 1);
The fitness funciton must return a scalar value. (The ga call can be further optimised by using an optons structure.)
.
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Genetic Algorithm en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!