2015-03-21 4 views
0

Я использую следующий код и пытаюсь построить график скорости и ускорения после дифференциации функции позиции, но я получаю ошибки. Может ли кто-нибудь дать мне руку?Ошибка с отображением MATLAB с символами

clc,clear,close all 

t=0:.0001:2*pi/150; 
theta= (150*t) ; 
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2); 
plot(t,r) 

hold on 

syms t 

theta= (150*t); 
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2); 
v=diff(r,t); 
a=diff(r,t,2); 

t=0:.0001:2*pi/150; 

plot(t,v); 
plot(t,a); 

hold off 
+1

Пожалуйста, разместите код, который вызывает ошибку. – thewaywewalk

+0

, пожалуйста, просмотрите вышеупомянутое сообщение сейчас –

+0

Вы отправили код, но не разместили сообщение об ошибке. Где происходит ошибка? – rayryeng

ответ

1

Причина, почему вы получаете ошибки, потому что, когда вы используете diff, вы используете его символически. Когда вы рисуете материал, вам нужно получить числовой вывод. Таким образом, вам понадобится дополнительный вызов subs, а также листинг с использованием double, если вы хотите, чтобы эта работа работала. So:

syms t; 

theta= (150*t); 
r=.2.*cos(theta)+sqrt(.75^2 - (.2.*sin(theta)).^2); 
v=diff(r,t); 
a=diff(r,t,2); 

%// Change 
t_vec=0:.0001:2*pi/150; 
v = double(subs(v, t, t_vec)); 
a = double(subs(a, t, t_vec)); 

hold on; 

%// Change 
plot(t_vec,v); 
plot(t_vec,a); 

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