Programmation en matlab
Anne-Laure
-
amiedz -
amiedz -
Bonjour,
je débute en programmation en matlab et j'ai beaucoup de mal alors je viens vous demander votre aide!
En fait je dois minimiser une fonction:
exp(x-2)+y^4+(95-x-y)^2
sachant que x+y appartient à [1,100] et que ce st des entiers.
je dois représenter le graphe: je n'y arrive pas! j'ai eu beau lire un certain nombre de docs, rien ne marche!
je dois aussi programmer l'algorithme du gradient à pas optimal: je l'ai bien compris ms je n'arrive pas à l'implémenter sur matlab.
y aurait il une bonne âme pour m'aider?
merci beaucoup!!!
je débute en programmation en matlab et j'ai beaucoup de mal alors je viens vous demander votre aide!
En fait je dois minimiser une fonction:
exp(x-2)+y^4+(95-x-y)^2
sachant que x+y appartient à [1,100] et que ce st des entiers.
je dois représenter le graphe: je n'y arrive pas! j'ai eu beau lire un certain nombre de docs, rien ne marche!
je dois aussi programmer l'algorithme du gradient à pas optimal: je l'ai bien compris ms je n'arrive pas à l'implémenter sur matlab.
y aurait il une bonne âme pour m'aider?
merci beaucoup!!!
A voir également:
- Programmation en matlab
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Programmation envoi sms - Guide
- Un autre programme est en cours d'installation - Forum Windows 10
- Ce programme est écrit en python il construit un mot secret ✓ - Forum Python
6 réponses
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) ???????
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?