2010-09-28 7 views
0

У меня проблема с домашней работой, я думаю, что я сделал это правильно, но вам нужно убедиться, что 100%. Может ли кто-нибудь проверить меня, прежде чем передать его? Спасибо.Matlab, функции графического отображения

Вопрос: Plot функция, заданная на F (х) = 2 sin (2x) - 3 соз (х/2) над In- интер вале [0, 2π] с помощью шагов длины .001 (Как?). Используйте команды max и min для оценки максимальной и минимальной точек. Включите максимальную и минимальную точки в виде меток на оси x, а также максимальные и минимальные значения в виде меток на оси y.

Мой код:

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]); 

(* после того, как вставить этот код здесь, это оказалось не так хорошо, как у меня было в моей программе, не знаю, почему)

+0

Для форматирования блоков кода, отступ на 4 пробела. Ярлыки для этого: 'Ctrl + K' или' 101010'. –

ответ

1

Чтобы создать вектор с определенным шагом do

x=0:0.001:2*pi; 

Почему у вас есть функция g (x) и почему вы используете fminbind? Используйте MIN и MAX, возвращайте индекс этих значений и найдите соответствующие значения x.

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

Для общего случая, если у вас несколько значений min/max, индекс будет содержать только первое вхождение. Вместо этого вы можете сделать:

minindex = find(y==ymin); 

Или для реальных значений, чтобы избежать точности ошибки:

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

Кроме того, ваш последний оператор возвращает ошибку Values must be monotonically increasing. Чтобы избежать сортировки ваших значений тика.

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

Правильно, вместо этого: set (gca, 'YTick', sort ([y2 y3])). –

+0

Это должно быть: set (gca, 'YTick', sort ([y3 y2])) –

+0

Для 'y' это нормально, но для' x' вы не знаете заранее порядка min/max. – yuk

Смежные вопросы