A voir également:
- Programmation en matlab
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Mettre en veille un programme - Guide
6 réponses
aryam
Messages postés
8
Date d'inscription
lundi 4 décembre 2006
Statut
Membre
Dernière intervention
15 septembre 2007
8
8 déc. 2006 à 13:15
8 déc. 2006 à 13:15
ok anne
essayes 2 m'envoyer l'algo & j ferais mon possible pr t'aider
pr la min essayes la commande QP . & sert toi surtt du help il est en englais c vrai mais il est très intérressent.
mon @e-mail est: aryam_ach@hotmail.com
à+
essayes 2 m'envoyer l'algo & j ferais mon possible pr t'aider
pr la min essayes la commande QP . & sert toi surtt du help il est en englais c vrai mais il est très intérressent.
mon @e-mail est: aryam_ach@hotmail.com
à+
Programmer une fonction MATLAB Y=f(x) calculant la valeur f(x) pour f(x)=x tan(x)-1 par la méthode de point fixe et dichotomie
Bonjour, URGENT
J'e n'arrive pas à utiliser Matlab concernant un algorithme ex
function ObjVal=crit2(dat)
%variables
k1=dat(:,1);
k2=dat(:,2);
k3=dat(:,3);
k4=dat(:,4);
for i=1:length(k1),
ObjVal(i)=(k4(l)-6)^2+(2*k2(j)-k1(i)-3+k4(l)-2*k3(k)-11)^2+(3*k3(k)-k3(k)*k2(j)+3*k1(i)+k1(i)*k4(l)-6)^2;%critère
end
J'ai programmé cette fonction avec un seul inconnu X donc F(X)= 3X² + 5X +21 ..... Donc jusque là c'est bon.
Maintenant je souhaiterais pouvoir programmer la fonction ci-dessus avec comme inconnues K1, K2, K3, et K4 sans toucher à ObjVal(i) ???????
J'e n'arrive pas à utiliser Matlab concernant un algorithme ex
function ObjVal=crit2(dat)
%variables
k1=dat(:,1);
k2=dat(:,2);
k3=dat(:,3);
k4=dat(:,4);
for i=1:length(k1),
ObjVal(i)=(k4(l)-6)^2+(2*k2(j)-k1(i)-3+k4(l)-2*k3(k)-11)^2+(3*k3(k)-k3(k)*k2(j)+3*k1(i)+k1(i)*k4(l)-6)^2;%critère
end
J'ai programmé cette fonction avec un seul inconnu X donc F(X)= 3X² + 5X +21 ..... Donc jusque là c'est bon.
Maintenant je souhaiterais pouvoir programmer la fonction ci-dessus avec comme inconnues K1, K2, K3, et K4 sans toucher à ObjVal(i) ???????
aryam
Messages postés
8
Date d'inscription
lundi 4 décembre 2006
Statut
Membre
Dernière intervention
15 septembre 2007
8
22 déc. 2006 à 13:28
22 déc. 2006 à 13:28
slt Cris
si tu veux m'envoyer l'algorithme comme ça je peux comprndre ce que tu veux et je peux mieux t'aider.
à+
si tu veux m'envoyer l'algorithme comme ça je peux comprndre ce que tu veux et je peux mieux t'aider.
à+
Letof
Messages postés
4
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
24 décembre 2006
3
>
aryam
Messages postés
8
Date d'inscription
lundi 4 décembre 2006
Statut
Membre
Dernière intervention
15 septembre 2007
22 déc. 2006 à 18:15
22 déc. 2006 à 18:15
Bonjour,
avant tout je me suis planté cris et Letof c'est moi....
auditeur au Conservatoire National des Arts et Métiers de St Etienne, je prépare un diplôme d'ingénieur en Automatisme Industriel.
Dans le cursus de cette formation, je dois réaliser un exposé sur un sujet que le professeur, responsable de la filiaire, m'a attribué. J'ai six semaines pour rédiger un compte-rendu avec soutenance à l'oral. (date de l'oral le 03/01/2007)
Le sujet qui m'a été attribué sont : Les Algorithmes Génétiques (principe et application à l'automatique)
J'ai récupéré des fichiers.m utilisant les Algorithmes Génétiques.
En revanche j'ai du mal à paramétrer l'algorithme :
J'ai fai un premier essai sur une fonction F(X) avec comme critère la minimisation de cette fonction ça marche....
function algogen(NIND,MAXGEN,NVAR)
PRECI = 20;
GGAP = 0.9;
FieldD = [rep([PRECI],[1, NVAR]); rep([0;3],[1, NVAR]);...
rep([1; 0; 1 ;1], [1, NVAR])];
Chrom = crtbp(NIND, NVAR*PRECI);
Best = NaN*ones(MAXGEN,1);
gen = 0;
ObjV = crit3(bs2rv(Chrom,FieldD));
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro');xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
while gen < MAXGEN,
FitnV = ranking(ObjV);
SelCh = select('sus', Chrom, FitnV, GGAP);
SelCh = recombin('xovsp',SelCh,0.7);
SelCh = mut(SelCh);
ObjVSel = crit3(bs2rv(SelCh,FieldD));
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
gen = gen+1;
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro'); xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
Dat=bs2rv(Chrom,FieldD);
Crit=crit2(bs2rv(Chrom,FieldD));
[Dat Crit]
[MinCrit Indice]=min(Crit);
[Dat(Indice,:) Crit2(Indice)]
pause
end
avec la fonction crit3 :
function ObjVal=crit3(dat)
%variables
x=dat(:,1);
for i=1:length(x),
ObjVal(i)=-(1/((x(i)-0.3)^2+0.1)+1/((x(i)-1.5)^2+0.2));%critère
end
ObjVal=ObjVal';
************************************************************************************
Par la suite je souhaite faire la même chose mais avec une équation à 4 inconnues
function algogen3(NIND,MAXGEN,NVAR)
PRECI = 20;
GGAP = 0.9;
FieldD = [rep([PRECI],[1, NVAR]); rep([0;3],[1, NVAR]);...
rep([1; 0; 1 ;1], [1, NVAR])];
Chrom = crtbp(NIND, NVAR*PRECI);
Best = NaN*ones(MAXGEN,1);
gen = 0;
ObjV = crit2(bs2rv(Chrom,FieldD));
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro');xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
while gen < MAXGEN,
FitnV = ranking(ObjV);
SelCh = select('sus', Chrom, FitnV, GGAP);
SelCh = recombin('xovsp',SelCh,0.7);
SelCh = mut(SelCh);
ObjVSel = crit2(bs2rv(SelCh,FieldD));
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
gen = gen+1;
Best(gen+1) = -min(ObjV);
plot(log10(Best),'ro'); xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
Dat=bs2rv(Chrom,FieldD);
Crit=crit2(bs2rv(Chrom,FieldD));
[Dat Crit]
[MinCrit Indice]=min(Crit);
[Dat(Indice,:) Crit3(Indice)]
pause
end
function ObjVal=crit2(dat)
%variables
k1=dat(:,1);
k2=dat(:,2);
k3=dat(:,3);
k4=dat(:,4);
for i=1:length(k1),
ObjVal(i)=(k4(i)-6)^2+(2*k2(i)-k1(i)-3+k4(i)-2*k3(i)-11)^2+(3*k3(i)-k3(i)*k2(i)+3*k1(i)+k1(i)*k4(i)-6)^2;%critère
end
ObjVal=ObjVal';
Problème je ne sais pas comment on fait pour trouver les coefficients K1, K2, K3 et K4 , mon algorithme fait un tour pour la valeur K1 et il m'affiche un message d'erreur :
??? Index exceeds matrix dimensions.
Error in ==> C:\matlabR12\toolbox\ag\SRC\crit2.m
On line 4 ==> k2=dat(:,2);
Error in ==> C:\matlabR12\toolbox\ag\SRC\algogen.m
On line 34 ==> [Dat(Indice,:) Crit2(Indice)]
Please help me.........
j'ai eut votre email dans le forum, c'est pour cela que je me suis permis de vous contacter
Mon email :
Letof38@free.fr
Cordialement....
avant tout je me suis planté cris et Letof c'est moi....
auditeur au Conservatoire National des Arts et Métiers de St Etienne, je prépare un diplôme d'ingénieur en Automatisme Industriel.
Dans le cursus de cette formation, je dois réaliser un exposé sur un sujet que le professeur, responsable de la filiaire, m'a attribué. J'ai six semaines pour rédiger un compte-rendu avec soutenance à l'oral. (date de l'oral le 03/01/2007)
Le sujet qui m'a été attribué sont : Les Algorithmes Génétiques (principe et application à l'automatique)
J'ai récupéré des fichiers.m utilisant les Algorithmes Génétiques.
En revanche j'ai du mal à paramétrer l'algorithme :
J'ai fai un premier essai sur une fonction F(X) avec comme critère la minimisation de cette fonction ça marche....
function algogen(NIND,MAXGEN,NVAR)
PRECI = 20;
GGAP = 0.9;
FieldD = [rep([PRECI],[1, NVAR]); rep([0;3],[1, NVAR]);...
rep([1; 0; 1 ;1], [1, NVAR])];
Chrom = crtbp(NIND, NVAR*PRECI);
Best = NaN*ones(MAXGEN,1);
gen = 0;
ObjV = crit3(bs2rv(Chrom,FieldD));
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro');xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
while gen < MAXGEN,
FitnV = ranking(ObjV);
SelCh = select('sus', Chrom, FitnV, GGAP);
SelCh = recombin('xovsp',SelCh,0.7);
SelCh = mut(SelCh);
ObjVSel = crit3(bs2rv(SelCh,FieldD));
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
gen = gen+1;
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro'); xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
Dat=bs2rv(Chrom,FieldD);
Crit=crit2(bs2rv(Chrom,FieldD));
[Dat Crit]
[MinCrit Indice]=min(Crit);
[Dat(Indice,:) Crit2(Indice)]
pause
end
avec la fonction crit3 :
function ObjVal=crit3(dat)
%variables
x=dat(:,1);
for i=1:length(x),
ObjVal(i)=-(1/((x(i)-0.3)^2+0.1)+1/((x(i)-1.5)^2+0.2));%critère
end
ObjVal=ObjVal';
************************************************************************************
Par la suite je souhaite faire la même chose mais avec une équation à 4 inconnues
function algogen3(NIND,MAXGEN,NVAR)
PRECI = 20;
GGAP = 0.9;
FieldD = [rep([PRECI],[1, NVAR]); rep([0;3],[1, NVAR]);...
rep([1; 0; 1 ;1], [1, NVAR])];
Chrom = crtbp(NIND, NVAR*PRECI);
Best = NaN*ones(MAXGEN,1);
gen = 0;
ObjV = crit2(bs2rv(Chrom,FieldD));
Best(gen+1) = min(ObjV);
plot(log10(Best),'ro');xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
while gen < MAXGEN,
FitnV = ranking(ObjV);
SelCh = select('sus', Chrom, FitnV, GGAP);
SelCh = recombin('xovsp',SelCh,0.7);
SelCh = mut(SelCh);
ObjVSel = crit2(bs2rv(SelCh,FieldD));
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
gen = gen+1;
Best(gen+1) = -min(ObjV);
plot(log10(Best),'ro'); xlabel('generation'); ylabel('log10(f(x))');
text(0.5,0.95,['Best = ', num2str(Best(gen+1))],'Units','normalized');
drawnow;
Dat=bs2rv(Chrom,FieldD);
Crit=crit2(bs2rv(Chrom,FieldD));
[Dat Crit]
[MinCrit Indice]=min(Crit);
[Dat(Indice,:) Crit3(Indice)]
pause
end
function ObjVal=crit2(dat)
%variables
k1=dat(:,1);
k2=dat(:,2);
k3=dat(:,3);
k4=dat(:,4);
for i=1:length(k1),
ObjVal(i)=(k4(i)-6)^2+(2*k2(i)-k1(i)-3+k4(i)-2*k3(i)-11)^2+(3*k3(i)-k3(i)*k2(i)+3*k1(i)+k1(i)*k4(i)-6)^2;%critère
end
ObjVal=ObjVal';
Problème je ne sais pas comment on fait pour trouver les coefficients K1, K2, K3 et K4 , mon algorithme fait un tour pour la valeur K1 et il m'affiche un message d'erreur :
??? Index exceeds matrix dimensions.
Error in ==> C:\matlabR12\toolbox\ag\SRC\crit2.m
On line 4 ==> k2=dat(:,2);
Error in ==> C:\matlabR12\toolbox\ag\SRC\algogen.m
On line 34 ==> [Dat(Indice,:) Crit2(Indice)]
Please help me.........
j'ai eut votre email dans le forum, c'est pour cela que je me suis permis de vous contacter
Mon email :
Letof38@free.fr
Cordialement....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
j'ai un probleme similaire, je parcours un fichier texte (csv) et je remplis ma mes matrices avec les données qui s'y trouvent. Quand je ne m'intéresse qu'aux premieres colonnes tout va bien; par contre, quand je dépasse la colonne 10 il me dit "index exceeds matrice dimensions" :-/
Est-ce que quelqu'un peut m'aider svp?
j'ai un probleme similaire, je parcours un fichier texte (csv) et je remplis ma mes matrices avec les données qui s'y trouvent. Quand je ne m'intéresse qu'aux premieres colonnes tout va bien; par contre, quand je dépasse la colonne 10 il me dit "index exceeds matrice dimensions" :-/
Est-ce que quelqu'un peut m'aider svp?