A voir également:
- Programme resolution programmation lineaire
- Programme demarrage windows 10 - Guide
- Application de programmation - Guide
- Désinstaller programme windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
22 réponses
j ai besoin de faire un programme de l équation ax=b dans matlab par la méthode de gauss mais avant il faut vérifier la déterminant voi mon programme.
clear all
n=input('donner la taille de la matrice');
A=input('Donner la matrice A : \n');
b=input('Donner le vecteur b : \n');
epsilon=input('donner epsilon\n');
max=input('donner le nombre maximal d iteration\n');
if det(A)==0
input('pas de solution')
else
input('la détirminant est')
det=det(A)
disp('Gauss_Seidel')
D=input('la diagonale est')
D=diag(A)
E=input('la tril est')
E=-tril(A,-1)
F=input('la triu est')
F=-triu(A,1)
x(:,1)=zeros(n,1);
err=1;
k=1;
x(:,k+1)=(D-E)\F*x(:,k)+(D-E)\b;
err=norm(x(:,k+1)-x(:,k));
k=k+1;
end
end
clear all
n=input('donner la taille de la matrice');
A=input('Donner la matrice A : \n');
b=input('Donner le vecteur b : \n');
epsilon=input('donner epsilon\n');
max=input('donner le nombre maximal d iteration\n');
if det(A)==0
input('pas de solution')
else
input('la détirminant est')
det=det(A)
disp('Gauss_Seidel')
D=input('la diagonale est')
D=diag(A)
E=input('la tril est')
E=-tril(A,-1)
F=input('la triu est')
F=-triu(A,1)
x(:,1)=zeros(n,1);
err=1;
k=1;
x(:,k+1)=(D-E)\F*x(:,k)+(D-E)\b;
err=norm(x(:,k+1)-x(:,k));
k=k+1;
end
end
bonjour a tout le monde.
svp je vais faire des etudes en informatique de gestion en première année et j'ai des matieres qui sont algorithmiques et programmation 1 ; algorithmiques et programmations 2 t surtout la programmation linéaire et je ne sais pas ce que c'est .
svp aiser moi je veux etre brillante et savoir ce que sait avant d'entrer a l'université.
j'mplore votre aise.
et merci.
svp je vais faire des etudes en informatique de gestion en première année et j'ai des matieres qui sont algorithmiques et programmation 1 ; algorithmiques et programmations 2 t surtout la programmation linéaire et je ne sais pas ce que c'est .
svp aiser moi je veux etre brillante et savoir ce que sait avant d'entrer a l'université.
j'mplore votre aise.
et merci.
salut j ai besoin de votre aide j ai besoin de comprendre resoudre ce probleme : resoudre grafiquement: maxmiser Z= 3x1+5x2 contrainte: x1 inferieure ou egal a 4
2x2inferieure ou egal a 12
3x1+2x2inferieurou egal a 18
x1superieure ou egal 0 , x2 superieur ou egel 0
2x2inferieure ou egal a 12
3x1+2x2inferieurou egal a 18
x1superieure ou egal 0 , x2 superieur ou egel 0
salut ma soeure .bon cette petite application est tres facile.pour la resoudre, on utilise la methide du simplexe.
on a comme donnees:
x1 <=4
2 x2<=12
3 x1+2 x2<=18
3 x1+5 x2=Z(max)
x1>=0 ,x1>=0
on va mettre ce systeme sous forme canonique
alors
x1 + x3 =4
2x2+ x4=12
3 x1+2 x2+ x5=18
3 x1+5 x2=Z(max)
x1>=0 ,x1>=0,x3>=0.x4>=0,x5>=0.
apres ca on utilise le tableau du simplexe
on trouve la solution suivante:
x*=(0.9)
z(max)=45
on a comme donnees:
x1 <=4
2 x2<=12
3 x1+2 x2<=18
3 x1+5 x2=Z(max)
x1>=0 ,x1>=0
on va mettre ce systeme sous forme canonique
alors
x1 + x3 =4
2x2+ x4=12
3 x1+2 x2+ x5=18
3 x1+5 x2=Z(max)
x1>=0 ,x1>=0,x3>=0.x4>=0,x5>=0.
apres ca on utilise le tableau du simplexe
on trouve la solution suivante:
x*=(0.9)
z(max)=45
salut j'ai un probléme mon prof de math nous a demandé de dessiner des courbes avec excel je sais dessiné mais je ne sais pas mettre les courbes sur un meme graphe pouvez vous m'aidé . Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
25 avril 2004 à 23:10
25 avril 2004 à 23:10
salut, heureux de t'avoir parmi nous, mais malheureusement pour toi, on ne participe pas ds ce site pour les paresseux, on aide ceux qui veulent travailler, si tu veux ton prog, tu vas le programmer et si t'as des blemes, reviens nous voir. Mais avant tout, va faire un tour ici :
http://www.commentcamarche.net/ccmguide/ccmcharte.php3
Maintenant, si tu veux l'algo du simplexe, google est ton ami (il te donnera plein de liens ou on explique l'algo du simplexe).
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
http://www.commentcamarche.net/ccmguide/ccmcharte.php3
Maintenant, si tu veux l'algo du simplexe, google est ton ami (il te donnera plein de liens ou on explique l'algo du simplexe).
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
bonjour
merci d'avoir repondu a ma requete derniere
cependant j'aimerai beneficier de votre aide sur le probleme pose par mon professeur de mathemabonjour
je vous remercie d'avoir repondu a ma question.
cependant j'ai un autre probleme qui me tracasse. j'implore votre aide sur ce fait.
il s'agit en fait du probleme de la programmation lineaire suivant:
exercice1:
etant donne le probleme de la pl
minimiser f(x)=cx=c1x1+c2x2+...+cnxn (1)
AX=b; x>=0 ou A=(aij) i=1...n ;j=1...m est une matrice (2)reelle constante
b=(b1,b2,...,bn)
on suppose que rangA=m<n
1)decrire la mzthode de simplexe se resolution du probleme (1) et (2).
2)a)formuler un probleme de la pl de votre choix contenant duex variables et au moins trois contraintes dont l'une au moins est de type d'egalite,puis resoudre par la methode decrite en 1) ce probleme.
3)ecrire le probleme dual formule en 2) , puis deduire de 2) sa solution.
j'ai aussi certaines exercices suivante a vous proposer c'est:
exercice1:
une compagnie a conclu un contrat avec le gouvernement
pour fournir 1200 micro ordinateurs cette annee et 2500
l'annee prochaine. la compagnie a une capacite de production
de 1400 micro ordinateurs par an et a deja effectue sa
ligne de production a ce niveau. la compagnie accepte utiliser
au moins 80 heures complementaires par an , chaque heure
complementaire coutant a la compagnie $20000.
en une heure complementaire, la compagnie peut fabriquer
50 micro ordinateurs. le prix unitaire des micro est de $100.
formuler le modele du probleme de sorte que le cout
de la production soit minimal.exercice1:
une compagnie a conclu un contrat avec le gouvernement
pour fournir 1200 micro ordinateurs cette annee et 2500
l'annee prochaine. la compagnie a une capacite de production
de 1400 micro ordinateurs par an et a deja effectue sa
ligne de production a ce niveau. la compagnie accepte utiliser
au moins 80 heures complementaires par an , chaque heure
complementaire coutant a la compagnie $20000.
en une heure complementaire, la compagnie peut fabriquer
50 micro ordinateurs. le prix unitaire des micro est de $100.
formuler le modele du probleme de sorte que le cout
de la production soit minimal.
exercice 2:
a) mettre le probleme suivant de la pl sous la forme standard
maximiser z= 5x1+7x2-2x3+3x4-6x5
sous les contraintes
x1+x2+x3+x4-x6=1 x1,x2,x3,x4,x5>=0
b) executer un seul pivot qui conduit a la forme canonique
initiale qui est aussi la forme optimale.
c)donner la regle generale qui permet de trouver la solution optimale
de tout probleme de la pl.la capacite de productivite journaliere d'un atelier d'assamblage
est 120 articles de type A et de 360 articles de type B.
le controle technique fait passer par jour 200 articles
des 2 types( sans distinction ).les articles de type A sont
4 fois plus cher que les articles de type B.
planifier la fabrication des produits de sorte que l'atelier
realise le plus grand profit possible.
je vous remercie d'avance!
merci d'avoir repondu a ma requete derniere
cependant j'aimerai beneficier de votre aide sur le probleme pose par mon professeur de mathemabonjour
je vous remercie d'avoir repondu a ma question.
cependant j'ai un autre probleme qui me tracasse. j'implore votre aide sur ce fait.
il s'agit en fait du probleme de la programmation lineaire suivant:
exercice1:
etant donne le probleme de la pl
minimiser f(x)=cx=c1x1+c2x2+...+cnxn (1)
AX=b; x>=0 ou A=(aij) i=1...n ;j=1...m est une matrice (2)reelle constante
b=(b1,b2,...,bn)
on suppose que rangA=m<n
1)decrire la mzthode de simplexe se resolution du probleme (1) et (2).
2)a)formuler un probleme de la pl de votre choix contenant duex variables et au moins trois contraintes dont l'une au moins est de type d'egalite,puis resoudre par la methode decrite en 1) ce probleme.
3)ecrire le probleme dual formule en 2) , puis deduire de 2) sa solution.
j'ai aussi certaines exercices suivante a vous proposer c'est:
exercice1:
une compagnie a conclu un contrat avec le gouvernement
pour fournir 1200 micro ordinateurs cette annee et 2500
l'annee prochaine. la compagnie a une capacite de production
de 1400 micro ordinateurs par an et a deja effectue sa
ligne de production a ce niveau. la compagnie accepte utiliser
au moins 80 heures complementaires par an , chaque heure
complementaire coutant a la compagnie $20000.
en une heure complementaire, la compagnie peut fabriquer
50 micro ordinateurs. le prix unitaire des micro est de $100.
formuler le modele du probleme de sorte que le cout
de la production soit minimal.exercice1:
une compagnie a conclu un contrat avec le gouvernement
pour fournir 1200 micro ordinateurs cette annee et 2500
l'annee prochaine. la compagnie a une capacite de production
de 1400 micro ordinateurs par an et a deja effectue sa
ligne de production a ce niveau. la compagnie accepte utiliser
au moins 80 heures complementaires par an , chaque heure
complementaire coutant a la compagnie $20000.
en une heure complementaire, la compagnie peut fabriquer
50 micro ordinateurs. le prix unitaire des micro est de $100.
formuler le modele du probleme de sorte que le cout
de la production soit minimal.
exercice 2:
a) mettre le probleme suivant de la pl sous la forme standard
maximiser z= 5x1+7x2-2x3+3x4-6x5
sous les contraintes
x1+x2+x3+x4-x6=1 x1,x2,x3,x4,x5>=0
b) executer un seul pivot qui conduit a la forme canonique
initiale qui est aussi la forme optimale.
c)donner la regle generale qui permet de trouver la solution optimale
de tout probleme de la pl.la capacite de productivite journaliere d'un atelier d'assamblage
est 120 articles de type A et de 360 articles de type B.
le controle technique fait passer par jour 200 articles
des 2 types( sans distinction ).les articles de type A sont
4 fois plus cher que les articles de type B.
planifier la fabrication des produits de sorte que l'atelier
realise le plus grand profit possible.
je vous remercie d'avance!
Bonjour a tous
S il vous plait j ai besoin de votre aide je dois faire un programme de l équation ax=b je l ai fait mais il y a un truc qui va pas dans le resultat de x
SVP de l aide....voici mon prog
#include <stdio.h>
int A[50][50];
int B[50];
int X[50];
int i,j,n,choix,rep;
int trisup(int A[50][50], int B[50])
{
int som;
som=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
som=som+(A[i][j]*X[j]);
X[i]=(1/A[i][i])*(B[i]-som);
}
}
printf("La solution X du systeme S est la suivante : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",&X[i]);
printf("\n");
}
}
return(0);
}
int triinf(int A[50][50], int B[50])
{
int som;
som=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
som=som+(A[i][j]*X[j]);
X[i]=(1/A[i][i])*(B[i]-som);
}
}
printf("La solution X du systeme S est la suivante : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",&X[i]);
printf("\n");
}
}
return(0);
}
void trisup_resolv()
{
printf("Vous avez choisi une matrice triangulaire superieure\n");
printf("\n");
printf("Saisie des donnees de la matrice A triangulaire superieure \n");
printf("\n");
printf("Entrer la dimension de la matrice A\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(j>=i)
{
printf("Element A[%d][%d] :",i,j);
scanf("%d",&A[i][j]);
}
else
A[i][j]=0;
}
printf("Les donnees de la matrice A sont les suivantes : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
printf("Element B[%d][%d]: ",i,j);
scanf("%d",&B[i]);
}
printf("Les cordonnees du vecteur B sont les suivantes : \n");
for(i=0;i<n;i++)
{
printf("%d ",B[i]);
printf("\n");
}
trisup(A,B);
}
void triinf_resolv()
{
printf("Vous avez choisi une matrice triangulaire inferieure\n");
printf("\n");
printf("Saisie des donnees de la matrice A triangulaire inferieure \n");
printf("\n");
printf("Entrer la dimension de la matrice A\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(j<=i)
{
printf("A[%d][%d] :",i,j);
scanf("%d",&A[i][j]);
}
else
A[i][j]=0;
}
printf("Les donnees de la matrice A sont les suivantes : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
printf("element[%d][%d]: ",i,j);
scanf("%d",&B[i]);
}
printf("Les coordonnees du vecteur B sont les suivantes : \n");
for(i=0;i<n;i++)
{
printf("%d",B[i]);
printf("\n");
}
triinf(A,B);
}
void acceuil()
{
printf("Bienvenue dans ce programme\n");
printf("\n");
printf("Ce programme permet la resolution de systemes lineaires tels que Ax=b\n");
printf("\n");
printf("Vous aurez le choix entre une matrice superieure et inferieure\n");
}
void fin()
{
rep=2;
if(rep==2)
{
printf("Merci davoir choisi ce programme.Fin.\n");
}
}
void main()
{
rep=1;
while(rep==1)
{
choix=0;
while(choix<1||choix>2)
{
printf("\n");
acceuil();
printf("\n");
printf("Que voulez vous faire ?\n");
printf("\n");
printf("1 pour effectuer le calcul sur une matrice triangulaire superieure\n");
printf("\n");
printf("2 pour effectuer le calcul sur une matrice triangulaire inferieure\n");
printf("\n");
scanf("%d",&choix);
switch(choix)
{
case 1:trisup_resolv();
break;
case 2:triinf_resolv();
break;
default:printf("Erreur de saisie. vous devez saisir un chiffre entre 1 et 3\n");
}
}
printf("Voulez vous continuez ? 1 pour Oui et 2 pour Non\n");
printf("\n");
scanf("%d",&rep);
printf("\n");
if(rep<1||rep>2)
{
printf("Une erreur sest produite. Ce programme va sarreter\n");
printf("\n");
fin();
}
if(rep==1)
{
while(rep==1)
{
choix=0;
while(choix<1||choix>2)
{
printf("Que voulez vous faire ?\n");
printf("\n");
printf("1 pour effectuer le calcul sur une matrice triangulaire superieure\n");
printf("\n");
printf("2 pour effectuer le calcul sur une matrice triangulaire inferieure\n");
printf("\n");
scanf("%d",&choix);
switch(choix)
{
case 1:trisup_resolv();
break;
case 2:triinf_resolv();
break;
default:printf("Erreur de saisie. Vous devez saisir 1 ou 2\n");
}
}
printf("Voulez vous continuez ? 1 pour Oui et 2 pour Non\n");
printf("\n");
scanf("%d",&rep);
printf("\n");
}
}
if(rep==2)
{
printf("Merci davoir choisi ce programme\n");
printf("\n");
printf("Fin du programme. Appuyer sur une touche quelconque\n");
}
}
}
S il vous plait j ai besoin de votre aide je dois faire un programme de l équation ax=b je l ai fait mais il y a un truc qui va pas dans le resultat de x
SVP de l aide....voici mon prog
#include <stdio.h>
int A[50][50];
int B[50];
int X[50];
int i,j,n,choix,rep;
int trisup(int A[50][50], int B[50])
{
int som;
som=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
som=som+(A[i][j]*X[j]);
X[i]=(1/A[i][i])*(B[i]-som);
}
}
printf("La solution X du systeme S est la suivante : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",&X[i]);
printf("\n");
}
}
return(0);
}
int triinf(int A[50][50], int B[50])
{
int som;
som=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
som=som+(A[i][j]*X[j]);
X[i]=(1/A[i][i])*(B[i]-som);
}
}
printf("La solution X du systeme S est la suivante : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",&X[i]);
printf("\n");
}
}
return(0);
}
void trisup_resolv()
{
printf("Vous avez choisi une matrice triangulaire superieure\n");
printf("\n");
printf("Saisie des donnees de la matrice A triangulaire superieure \n");
printf("\n");
printf("Entrer la dimension de la matrice A\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(j>=i)
{
printf("Element A[%d][%d] :",i,j);
scanf("%d",&A[i][j]);
}
else
A[i][j]=0;
}
printf("Les donnees de la matrice A sont les suivantes : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
printf("Element B[%d][%d]: ",i,j);
scanf("%d",&B[i]);
}
printf("Les cordonnees du vecteur B sont les suivantes : \n");
for(i=0;i<n;i++)
{
printf("%d ",B[i]);
printf("\n");
}
trisup(A,B);
}
void triinf_resolv()
{
printf("Vous avez choisi une matrice triangulaire inferieure\n");
printf("\n");
printf("Saisie des donnees de la matrice A triangulaire inferieure \n");
printf("\n");
printf("Entrer la dimension de la matrice A\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(j<=i)
{
printf("A[%d][%d] :",i,j);
scanf("%d",&A[i][j]);
}
else
A[i][j]=0;
}
printf("Les donnees de la matrice A sont les suivantes : \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
printf("element[%d][%d]: ",i,j);
scanf("%d",&B[i]);
}
printf("Les coordonnees du vecteur B sont les suivantes : \n");
for(i=0;i<n;i++)
{
printf("%d",B[i]);
printf("\n");
}
triinf(A,B);
}
void acceuil()
{
printf("Bienvenue dans ce programme\n");
printf("\n");
printf("Ce programme permet la resolution de systemes lineaires tels que Ax=b\n");
printf("\n");
printf("Vous aurez le choix entre une matrice superieure et inferieure\n");
}
void fin()
{
rep=2;
if(rep==2)
{
printf("Merci davoir choisi ce programme.Fin.\n");
}
}
void main()
{
rep=1;
while(rep==1)
{
choix=0;
while(choix<1||choix>2)
{
printf("\n");
acceuil();
printf("\n");
printf("Que voulez vous faire ?\n");
printf("\n");
printf("1 pour effectuer le calcul sur une matrice triangulaire superieure\n");
printf("\n");
printf("2 pour effectuer le calcul sur une matrice triangulaire inferieure\n");
printf("\n");
scanf("%d",&choix);
switch(choix)
{
case 1:trisup_resolv();
break;
case 2:triinf_resolv();
break;
default:printf("Erreur de saisie. vous devez saisir un chiffre entre 1 et 3\n");
}
}
printf("Voulez vous continuez ? 1 pour Oui et 2 pour Non\n");
printf("\n");
scanf("%d",&rep);
printf("\n");
if(rep<1||rep>2)
{
printf("Une erreur sest produite. Ce programme va sarreter\n");
printf("\n");
fin();
}
if(rep==1)
{
while(rep==1)
{
choix=0;
while(choix<1||choix>2)
{
printf("Que voulez vous faire ?\n");
printf("\n");
printf("1 pour effectuer le calcul sur une matrice triangulaire superieure\n");
printf("\n");
printf("2 pour effectuer le calcul sur une matrice triangulaire inferieure\n");
printf("\n");
scanf("%d",&choix);
switch(choix)
{
case 1:trisup_resolv();
break;
case 2:triinf_resolv();
break;
default:printf("Erreur de saisie. Vous devez saisir 1 ou 2\n");
}
}
printf("Voulez vous continuez ? 1 pour Oui et 2 pour Non\n");
printf("\n");
scanf("%d",&rep);
printf("\n");
}
}
if(rep==2)
{
printf("Merci davoir choisi ce programme\n");
printf("\n");
printf("Fin du programme. Appuyer sur une touche quelconque\n");
}
}
}
slt.jai une probleme dans la programation en matlabe
comment ecrire un algourithme d'une matrice triangulaire supérieure par la méthode de gauss.merci beucoup
comment ecrire un algourithme d'une matrice triangulaire supérieure par la méthode de gauss.merci beucoup
salut;mira voila le program: méthode d'élémétation de gauss avec exemple
A=[1,2,3;4,0,5;7,6,7]
d = det(A)
b=[4;120;50]
[n,n]=size(A)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
kaderkaderkaderkaderkaderkaderkaderkaderkader
et le programme algorithmique :gorithmes de résolution
pour k = 1, n − 1
si |Akk| ≤ ε stop pivot trop petit
pour i = k + 1, n
p = Aik/Akk
pour j = k + 1, n
Aij = Aij − pAkj
Aik = 0
Bi = Bi − pBk
A=[1,2,3;4,0,5;7,6,7]
d = det(A)
b=[4;120;50]
[n,n]=size(A)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
kaderkaderkaderkaderkaderkaderkaderkaderkader
et le programme algorithmique :gorithmes de résolution
pour k = 1, n − 1
si |Akk| ≤ ε stop pivot trop petit
pour i = k + 1, n
p = Aik/Akk
pour j = k + 1, n
Aij = Aij − pAkj
Aik = 0
Bi = Bi − pBk
slt a tout
comment faire un algourithme de la composition LU --factoritsatoin--gauss
merciiiiiiiiiiiiii
comment faire un algourithme de la composition LU --factoritsatoin--gauss
merciiiiiiiiiiiiii
salut alors moi g un problem avec lé programation je doi resoudr le system ax=b et affiché la solution en utilisant l algorithme de gauss ; mais j arriv pas a l fair svp est ce ke vou pouvé maidé ?
jyma11
Messages postés
7
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
12 mars 2008
2 janv. 2008 à 21:06
2 janv. 2008 à 21:06
salut j'ai besoin de votre aide ,je veux écrire un programme qui resoud l' équation: ax+b=0 aidez moi ,j'ai écris mais je ne suis pas sure de moi ,j'attend votre reponse .merci
salut s.v.p je voudrais un ou dfes proggramme qui resoud les méthode de simlexe de programmation linéaire
(méthode du grand m)
(méthode du grand m)
salut s.v.p je voudrais un programme par matlab, qui recoud la factorisation LU par la méthode de gauss
""avec matlab""
""avec matlab""
salut tout le monde!
alors je dois faire la résolution d'un programme linéaire de tré grande taille ( presque 300 contrainte et 300 variable ) g essayé le logiciel lingo mé il me peux pas résoudre il se limite à 150 contrainte et 300 varible si vous avez une idée ou un lien ou je peux trouver mieux que lingo aider moi. merci c mon E-mail : pro-z@hotmail.fr
alors je dois faire la résolution d'un programme linéaire de tré grande taille ( presque 300 contrainte et 300 variable ) g essayé le logiciel lingo mé il me peux pas résoudre il se limite à 150 contrainte et 300 varible si vous avez une idée ou un lien ou je peux trouver mieux que lingo aider moi. merci c mon E-mail : pro-z@hotmail.fr
voila le pgm pascal de la méthode de gausse au cas géneral
program hmdagauss;
const l=100;
type mat= array[1..l,1..l]of real;
tab=array[1..l]of real;
var a:mat;b,x:tab;n, i,j,k,p:integer;m,z,max,s:real;
begin
writeln('entrez le nombre de ligne et d colonne S.V.P');
readln(n);
writeln('la matrice A !');
for i:=1 to n do
begin
for j :=1 to n do
begin
write('a[',i,j,']=');
read(a[i,j]);
end;
read
end;
writeln(' le vecteure B !');
for i:=1 to n do
begin
write ('B[',i,']=');
readln(b[i]);
end;
for k:=1 to n-1 do
begin
if a[k,k]=0 then
begin
max:=a[k+1,k];p:=k+1;
for i:=k+2 to n do
begin
if a[i,k]>max then
p:=i
end;
for j :=k to n do
begin
z:=a[p,j];
a[p,j]:=a[k,j];
a[k,j]:=z;
end;
end;
for i:=k+1 to n do
begin
m:=a[i,k]/a[k,k];
for j :=k+1 to n do
a[i,j]:=a[i,j]-m*a[k,j];
b[i]:=b[i]-m*b[k];
end;
end;
x[n]:=b[n]/a[n,n];
for i:=n-1 downto 1 do
begin
s:=b[i];
for j:=i+1 to n do
s:=s-a[i,j]*x[j];
x[i]:=s/a[i,i];
end;
writeln('----------------------------');
writeln('-------la resolution--------');
writeln('-------------est------------');
for i :=1 to n do
begin
writeln('x',i,'=',x[i]:4:2 );
end;
readln;
end.
program hmdagauss;
const l=100;
type mat= array[1..l,1..l]of real;
tab=array[1..l]of real;
var a:mat;b,x:tab;n, i,j,k,p:integer;m,z,max,s:real;
begin
writeln('entrez le nombre de ligne et d colonne S.V.P');
readln(n);
writeln('la matrice A !');
for i:=1 to n do
begin
for j :=1 to n do
begin
write('a[',i,j,']=');
read(a[i,j]);
end;
read
end;
writeln(' le vecteure B !');
for i:=1 to n do
begin
write ('B[',i,']=');
readln(b[i]);
end;
for k:=1 to n-1 do
begin
if a[k,k]=0 then
begin
max:=a[k+1,k];p:=k+1;
for i:=k+2 to n do
begin
if a[i,k]>max then
p:=i
end;
for j :=k to n do
begin
z:=a[p,j];
a[p,j]:=a[k,j];
a[k,j]:=z;
end;
end;
for i:=k+1 to n do
begin
m:=a[i,k]/a[k,k];
for j :=k+1 to n do
a[i,j]:=a[i,j]-m*a[k,j];
b[i]:=b[i]-m*b[k];
end;
end;
x[n]:=b[n]/a[n,n];
for i:=n-1 downto 1 do
begin
s:=b[i];
for j:=i+1 to n do
s:=s-a[i,j]*x[j];
x[i]:=s/a[i,i];
end;
writeln('----------------------------');
writeln('-------la resolution--------');
writeln('-------------est------------');
for i :=1 to n do
begin
writeln('x',i,'=',x[i]:4:2 );
end;
readln;
end.
mira 1989
Messages postés
1
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
10 mai 2008
10 mai 2008 à 19:35
10 mai 2008 à 19:35
la méthode en matlabe stp
factorisation LU
A=[1,1,1;3,9,27;2,4,8]
[L,U] = lu(A)
d = det(L)*det(U)
d = det(A)
b=[14;120;50]
[n,n]=size(A)
A(i,i)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
_________________________________________________________________________
méthode d'élémétation de gauss
A=[1,2,3;4,0,5;7,6,7]
d = det(A)
b=[4;120;50]
[n,n]=size(A)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
A=[1,1,1;3,9,27;2,4,8]
[L,U] = lu(A)
d = det(L)*det(U)
d = det(A)
b=[14;120;50]
[n,n]=size(A)
A(i,i)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
_________________________________________________________________________
méthode d'élémétation de gauss
A=[1,2,3;4,0,5;7,6,7]
d = det(A)
b=[4;120;50]
[n,n]=size(A)
for j=1:n
for k=1:j-1
for i=k+1:n
A(i,j)=A(i,j)-A(i,k)*A(k,j)
end
end
for i=j+1:n
A(i,j)/A(j,j);
end
end
4 juin 2008 à 00:23
je t'envoi un programme que j'ai fait, et ça marche: c'est AZIZ Rachid
#include<stdio.h>
#define N 50
#define M 40
#include<conio.h>
#include<math.h>
float tampon[N][M+N],d[N];
int n,indice[N],m;
int chercol(void);
int cherlig(int c );
void simp(int l, int c);
void affiche(void);
void saisie(void);
void scalaire(void);
/*****************FONCTION PRINCIPALE*************************/
int main(void)
{ int l,c;
saisie();
for(;;)
{
affiche();
c=chercol();
if(c==-1)
break;
// printf("les tableaux sont:");
printf("\n%f",tampon[n][c]);
l=cherlig(c);
if(l==-1)
break;
indice[l]=c;
simp(l,c);
scalaire();
}
getch();
}
//*********************RECHERCHE DE LA COLONNE DU PIVOT**********************
int chercol(void)
{ int i,memo;
float min;
min =tampon[n][0];
memo=0;
for(i=1;i<m+n;i++)
if(min>tampon[n][i])
{min =tampon[n][i];
memo=i; }
if(min>=0)
return(-1);
else
return(memo);
}
//*******************RECHERCHE DE LA LIGNE DU PIVOT**************************
int cherlig(int c)
{ int i,memo;
float min;
i=0;
while(tampon[i][c]<=0)
{i++;
if(i==n-1)
return(-1);}
min= tampon[i][m+n]/tampon[i][c];
memo=i;
for(i=0;i<n;i++)
if((tampon[i][c]!=0) && ( min > tampon[i][m+n]/tampon[i][c]) &&(tampon[i][c]>0))
{min = tampon[i][m+n]/tampon[i][c];
memo=i;}
return(memo);
}
//*******************************SIMPLEXE************************************
void simp(int l,int c)
{ int i,j;
float pivot;
pivot=tampon[l][c];
for(j=0;j<m+n+1;j++)
tampon[l][j] = tampon[l][j]/pivot;
for(i=0;i<n;i++)
if(i!=l)
{ pivot=tampon[i][c];
for(j=0;j<m+n+1;j++)
tampon[i][j]= tampon[i][j] - pivot * tampon[l][j];}
}
//*************************LES DELTAS(I,J)***********************************
void scalaire(void)
{ int i,j;
float L;
for(j=0;j<m+n+1;j++)
{ L=0;
for(i=0;i<n;i++)
L= L + d[indice[i]]*tampon[i][j];
if(j == m+n)
tampon[n][j]=L;
else
tampon[n][j]=d[j]-L;}
}
//******************************AFFICHAGE**************************************
void affiche(void)
{ int l,c,i;
gotoxy(8,5);
cprintf("LES TABLEAUX :");
for(l=0;l<n+1;l++)
{ i=1;
for(c=0;c<m+n+1;c++)
{gotoxy(3*n*(i++),l+10);
printf("%.1f",tampon[l][c]);}
}
getch();
}
//*****************************LA SAISIE*************************************
void saisie(void)
{ int p,l,c;
window(1,1,80,25);
textbackground(1);
clrscr();
window(4,5,75,24);
textbackground(9);
clrscr();
textcolor(WHITE);
gotoxy(4,2);
cprintf("CE PROGRAMME PEUT RESOUDRE LE PROBLEME");
gotoxy(4,3);
cprintf("LINEAIRE DE LA FORME A*X<=b");
gotoxy(4,4);
cprintf("PAR LA METHODE Du SIMPLEX");
gotoxy(4,5);
gotoxy(4,10);
cprintf("Le problème à la forme suivante:");
gotoxy(4,12);
cprintf("a11*x1+.....+a1m*xm<=b1");
gotoxy(4,13);
cprintf(". ..... . <=.");
gotoxy(4,14);
cprintf("an1*x1+.....+anm*xm<=bn");
gotoxy(4,15);
cprintf("MIN( c1*x1+.......+cn*xm).");
gotoxy(4,17);
cprintf(" Pour résoudre le probléme d'affectation des engins aux chantiers à cout minimal " );
gotoxy(4,18);
cprintf("les dimensions du problème:");
gotoxy(4,19);
cprintf("Donnez le nombre des lignes n= ");
scanf("%d",&n);
gotoxy(4,20);
cprintf("Donnez le nombre des colonnes m= ");
scanf("%d",&m);
p=n;
for(l=0;l<n;l++)
indice[l]=p++;
window(1,1,80,25);
textbackground(1);
clrscr();
window(1,1,80,40);
textbackground(9);
clrscr();
textcolor(WHITE);
gotoxy(10,6);
cprintf(" Donnez la matrice A");
for(l=0;l<n;l++)
for(c=0;c<m;c++)
{ gotoxy(14*c+12,l+9);
cprintf("A[%d][%d]=",l,c);
scanf("%f",&tampon[l][c]);}
cprintf("\n Donnnez le vecteur b\n");
for(l=0;l<n;l++)
{
gotoxy(39,13+l);
cprintf("b[%d]=",l);
scanf("%f",&tampon[l][m+n]);}
cprintf("\n donnez le vecteur c\n");
for(c=0;c<n;c++)
{
gotoxy(49,18+c);
cprintf("c[%d]=",c);
scanf("%f",&d[c]);}
for(c=0;c<m+n;c++)
{ if( c < n )
tampon[n][c]=d[c];
else
{tampon[n][c]=0;
d[c]=0;}}
for(c=n;c<m+n;c++)
for(l=0;l<n;l++)
if( (l+n) == c )
tampon[l][c]=1;
else
tampon[l][c]=0;
tampon[n][m+n]=0;
}
7 mai 2009 à 18:08
17 mai 2009 à 22:22
et merci à l'avance!!
21 mai 2009 à 14:28
10 sept. 2010 à 23:23