bonjour, je suis en licence de gestion, et dans la matière logarithme et programmation en C, on a un projet à faire, jugé infinissable (pour notre niveau). Avec mon binôme, on a choisi le duopole de cournot, où deux firmes doivent calculer leurs niveaux de production respectifs, en fonction de la demande et de la quantité produite par l'entreprise concurrente.. les deux entreprises subissent des coûts marginaux constants c1 et c2, etc. normalement le calcul est faisable à la main, mais le but ici est d'utiliser la puissance de l'ordinateur lorsque l'on fait face à une fonction de demande complexe (plus proche de la réalité économique).
je vais poster à la suite le sujet de notre projet, et l'ébauche de notre programme, en espérant l'aide d'une âme charitable! en effet, nous sommes bloqués car en cours nous n'avons pas appris à déclarer des fonctions mathématiques et à les utiliser.. de plus on doit il semblerait appliquer la méthode de Newton, ce qui obscurcit encore plus le programme, et on ne sait pas comment implanter cette méthode à l'intérieur.

si vous voyez des erreurs énormes, soyez indulgents, nous débutons!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#define A 1000.
#define h 0.001
#define c1 2
#define c2 6
 
float P (float q1, float q2) {
//	return A/(1+q1+q2); voilà la fonction de demande plus compliqué que la suivante
	return A-(q1+q2); // celle ci c'est une plus simple pour tester la méthode de newton, mais faisable à la main.
}
 
float PF1(float q1, float q2){
	return ((P(q1,q2)-c1)*q1);
}
float PF2(float q1, float q2){
	return ((P(q1,q2)-c2)*q2);
}	
float DPF1(float q1, float q2){
	return (PF1(q1+h,q2)-PF1(q1-h,q2))/(2*h);
}
float DPF2(float q1, float q2){
	return (PF2(q1, q2+h)-PF2(q1,q2-h))/(2*h);
}
 
float MR1(float q1, float q2){
		return (A-q2-c1)/2;
}
float MR2(float q1, float q2){
		return (A-q1-c2)/2;
}
 
 
main (){
 
 
	float q1prec, q2prec, q1, q2;
	int i;
	// on essaie de trouver les valeurs de production 
	// l'équilibre par récurrence, on part avec l'hypothèse q1=A/2
	q1=A/2;
 
 
	do{
		q1prec=q1;
		q2prec=q2;
		q2=MR2(q1,q2);
		q1=MR1(q1,q2);
	printf ("donnez %f et %f\n", q1, q2);
	} while (fabs(q1-q1prec)>1e-5 || fabs(q2-q2prec)>1e-5 );
}
encore merci pour vos futurs réponses,




Antoine Nadal
nadal.antoine@hotmail.fr