close all;
dt = 0.01;%time step
k=1;
m=1;%initial parameters
u1 =1;
u2 =2;
z = u2-u1;
c = sgn(z);
h = c*z;
v=1;
a=1;
tend=10;
t=0;
i=1
while t < tend-2*dt
vh=v(i)-dt*k*h(i)/ (2*m);
h(i+1)= z(i)+ dt*vh;
a(i+1)= -k*h(i+1)/2;
v(i+1)= vh + dt*a(i+1)/2;
i = i+1;
t = t + dt
end
plot(linspace(0,tend,tend/dt),z);

1 Kommentar

Stephen23
Stephen23 am 19 Jun. 2019
Bearbeitet: Stephen23 am 19 Jun. 2019
Did you actually intend to use sign ?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Abhishek Kumar
Abhishek Kumar am 26 Jun. 2019

0 Stimmen

Hi Advait
There is no function called 'sgn' in matlab. It seems that you wanted to use 'sign' to get the sign of the variable and then make it positive.
you can use to command window to find whether a function exists or not, and if it exists what it does. eg.
>> help sign

Kategorien

Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 19 Jun. 2019

Beantwortet:

am 26 Jun. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by