Fonction matlab

Résolu
loulp123 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
loulp123 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention  
 
oui vous avez raison , merci bcp
le probleme est résolu
0