2010-09-28 7 views
0

J'ai un problème de travail, je pense que je l'ai fait correctement, mais ils doivent se assurer 100%. Quelqu'un peut-il vérifier pour moi, avant de le remettre? Merci.Matlab, les fonctions graphiques

Question: Tracer la fonction donnée par f (x) = 2 sin (2x) - 3 cos (x/2) au-dessus de l'en- Terval [0, 2π] à l'aide des mesures de longueur 0,001 (Comment?). Utilisez les commandes max et min pour estimer les points maximum et minimum. Inclure les points maximum et minimum en tant que marques de graduation sur l'axe des x et les valeurs maximales et minimales en tant que marques de graduation sur l'axe des ordonnées.

Mon code:

x=linspace(0,2*pi,6280); 
[email protected](x)... 
    2.*sin(2.*x)-3.*cos(x./2); 

%f = @(x)2.*sin(2.*x)-3.*cos(x./2) 

[email protected](x)... 
    -1*(2.*sin(2.*x)-3.*cos(x./2)); 

%g = @(x)-1*(2.*sin(2.*x)-3.*cos(x./2)) 

[x3,y5]=fminbnd(g,0,2*pi); 

%x3 = 4.0968 
%y3 = -3.2647 

[x2,y4]=fminbnd(f,0,2*pi); 

%x2 =2.1864 
%y2 = -3.2647 

y2=max(f(x)); 
y3=min(f(x)); 

plot(x,f(x)); 
set(gca,'XTick',[x2 x3]); 
set(gca,'YTick',[y2 y3]); 

(* après avoir coller ce code ici, il ne semblait pas aussi beau que je l'avais dans mon programme, je ne sais pas pourquoi)

+0

Pour mettre en forme des blocs de code, indentez 4 espaces. Raccourcis pour cela: 'Ctrl + K', ou' 101010'. –

Répondre

1

Pour créer un vecteur avec une certaine étape faire

x=0:0.001:2*pi; 

Pourquoi avez-vous la fonction g (x) et pourquoi utilisez-vous fminbind? Utilisez MIN et MAX, retournez l'index de ces valeurs et trouvez les valeurs x associées.

[ymin, minindex] = min(f(x)); 
xmin = x(minindex); 

Pour le cas général si vous avez plusieurs valeurs min/max, l'index contiendra uniquement la première occurrence. Au lieu de cela, vous pouvez faire:

minindex = find(y==ymin); 

Ou pour les valeurs réelles pour éviter les erreurs de précision:

minindex = find(abs(y-ymin)<=eps); 

également votre dernière déclaration retourne l'erreur Values must be monotonically increasing. Pour éviter cela, triez vos valeurs de ticks.

set(gca,'XTick',sort([xmin xmax])); 
set(gca,'YTick',sort([ymin ymax])); 
+0

À droite, au lieu de ceci: set (gca, 'YTick', sort ([y2 y3])). –

+0

cela doit être ceci: set (gca, 'YTick', sort ([y3 y2])) –

+0

Pour 'y' c'est bon, mais pour' x' vous ne connaissez pas d'avance l'ordre de min/max. – yuk

Questions connexes