why the error is written here (Not enough input arguments.)

1 次查看(过去 30 天)
function dydt= project(t,psi)
M=5; m=0.5; R=0.5; tau=10*sin(100*t); F=10*cos(10*t) ; ddx=2;
dydt(1)=y(3);
dydt(2)=y(4);
dydt(3)=-(M*R^2*y(3) - 2*tau + 2*R^2*y(3)*m + 2*R*ddx*sin(y(1)))/(2*R*cos(y(1)))
dydt(4)=(M^2*R^2*y(3) + 3*M*R^2*y(3)*m + 2*ddx*sin(y(1))*M*R - 2*tau*M + 2*cos(y(1))*sin(y(1))*R^2*y(3)^2 + 2*R^2*y(3)*m^2 + 2*ddx*sin(y(1))*R*m + 2*F*cos(y(1))*R - 2*tau*m)/(2*R^2*cos(y(1))^2)
dydt=dydt';
end

采纳的回答

madhan ravi
madhan ravi 2018-12-16
编辑:madhan ravi 2018-12-16
[t,y]=ode45(@project,[0 10],[0;0;0;0]) ; % you forgot to call the function with input arguments
plot(t,y(:,1))
figure
plot(t,y(:,2),'r')
figure
plot(t,y(:,3),'g')
figure
plot(t,y(:,4),'m')
function dydt= project(t,y) % function definition
M=5; m=0.5; R=0.5; tau=10*sin(100*t); F=10*cos(10*t) ; ddx=2;
dydt=zeros(4,1);
dydt(1)=y(3);
dydt(2)=y(4);
dydt(3)=-(M*R^2*y(3) - 2*tau + 2*R^2*y(3)*m + 2*R*ddx*sin(y(1)))/(2*R*cos(y(1)));
dydt(4)=(M^2*R^2*y(3) + 3*M*R^2*y(3)*m + 2*ddx*sin(y(1))*M*R - 2*tau*M + 2*cos(y(1))*sin(y(1))*R^2*y(3)^2 + 2*R^2*y(3)*m^2 + 2*ddx*sin(y(1))*R*m + 2*F*cos(y(1))*R - 2*tau*m)/(2*R^2*cos(y(1))^2);
end
Screen Shot 2018-12-16 at 4.54.22 PM.png
Screen Shot 2018-12-16 at 4.54.31 PM.png
Screen Shot 2018-12-16 at 4.54.37 PM.png
Screen Shot 2018-12-16 at 4.54.43 PM.png
  9 个评论
Mustafa Alhandhali
Mustafa Alhandhali 2018-12-16
last quastion :(
if i want to replace the function of F( F=10*cos(10*t))
to pulse functin first and in another exmple to unit step funnction
how i can write the code
note: i want any exapmles of pulse functin and unit step funnction which can i write it here

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by