MATLAB: Ajustement de courbe non linéaire dans MATLAB

Salut les gars! On me donne des données énormes. J’essaie d’adapter un ensemble de données dans un modèle de forme fonctionnelle comme décrit ci-dessous:
z (x, y) = c0. * x ^ 0 * y ^ 2 + c1. * x ^ 1 * y ^ 1 + c2. * x ^ 2 * y ^ 1
où c0, c1, c2 sont les coefficients à trouver.
Ma tentative consiste à utiliser la fonction nlinfit pour le résoudre.
Jusqu’à présent, j’ai essayé:
% je viens d’ajouter une petite partie de mes données
a = [0,001, 0,001, 0,001, 0,001, 0,001, 0,001, 0,001, 0,001, 0,001, 0,001,0,011, 0,011, 0,011, 0,011, 0,011, 0,011, 0,011, 0,011, 0,011, 0,011];
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
y = x. * a;
z = [-.304860225, .170315374, .343019354, .370114906, .373180536, .36719579, .363397853, .363417755, .366962504, .379710865, -.304860225, .170315374, .343019354, .36, 346 .36719579, .363397853, .363417755, .366962504, .379710865];
modèle = c0. * (x (:). ^ 0). * (y (:). ^ 2) + c1. * (x (:). ^ 1). * (y (:). ^ 1) + c2. * (x (:). ^ 2). * (y (:). ^ 0)
[c0 c1 c2] = [0,001 0,007 0,788]
C = nlinfit ([x, y], z, «modèle», [0,001 0,007 0,788])
% Ici x, y sont des variables indépendantes et z est une variable dépendante.
Comment définir ces valeurs initiales pour les coefficients? Je ne sais pas comment passer les arguments. J’obtiens cette erreur « ??? Fonction non définie ou variable ‘c0′ ». Aidez-moi !!!
Merci d’avance, Syeda

Meilleure réponse

  • La solution est triviale car vous avez un système d’équations linéaire pour les 3 coefficients
     

    A*c = b;
    c = A\b