Fonction matlab

Résolu/Fermé
loulp123 Messages postés 26 Date d'inscription mercredi 18 mai 2011 Statut Membre Dernière intervention 21 novembre 2011 - 14 sept. 2011 à 23:51
loulp123 Messages postés 26 Date d'inscription mercredi 18 mai 2011 Statut Membre Dernière intervention 21 novembre 2011 - 16 sept. 2011 à 14:28
Bonjour,

je veux dessiner une fonction en matlab , mais ya un probleme qui s affiche ds le progamme :

D=linspace(0,1,10);
B=linspace(0,1,10);
f=1,2;
g=2;
m=8 ;
D=B/B+(1-B).*((f-(f/g).^m)/f-1);
plot(B,D)

voici l erreur
??? D=B+(1-B).*((f-(f/g).^m)/(f-1);
|
Error: Unbalanced or unexpected parenthesis or bracket.

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 sept. 2011 à 10:05
l'erreur est étonnante, je compte le bon nombre de parenthèse.
la seule chose qui me gène c'est "f=1,2". Normalement, les nombre réel s'écrivent avec un point. Là, je ne sais pas ce que ça donne.
je ne comprend pas non plus ton B/B... en plus, un vecteur divisé par un vecteur, je suis étonner qu'il ne râle pas.
pourquoi donner des valeurs à D alors que tu l'écrases quelques lignes plus loin ?
0
loulp123 Messages postés 26 Date d'inscription mercredi 18 mai 2011 Statut Membre Dernière intervention 21 novembre 2011
15 sept. 2011 à 16:02
merci Char snipeur ,je suis débutante en matlab donc c'est pas évident ds un premier temps , l'objectif c de dessiner D en fonction de B ,
et B et D peuvent prendre des nombres et ce sont pas des vecteurs
avec f , g et m donné
voila le programme corrigé :
D=linspace(0,1,10);
B=linspace(0,1,10);
f=1.2;
g=2;
m=8 ;
D=B/(B+(1-B).*((f-(f/g).^m)/(f-1)));
plot(B,D)

j'ai essayé de modifier les parentheses ,
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 sept. 2011 à 16:19
B=linspace(0,1,10);
veux dire que B est un vecteur. Lorsque tu fais B/B tu essais de faire un produit "matriciel" qui ne fonctionne pas sur des vecteurs (je crois qu'il est impossible d'inverser un vecteur). Ce qui est génial avec MATLAB, c'est que tu peux faire des opérations terme à terme grace aux opérateurs préfixés avec un point, comme tu l'utilises avec la multiplication et la puissance.
D=B./(B+(1-B)*((f-(f/g)^m)/(f-1)));
Il faut bien faire attention aux choses que tu multiplies et que tu divises.
0
loulp123 Messages postés 26 Date d'inscription mercredi 18 mai 2011 Statut Membre Dernière intervention 21 novembre 2011
16 sept. 2011 à 14:28
oui vous avez raison , merci bcp
le probleme est résolu
0