Eulers Metod, kodproblem
Hej,
Jag har ett problem med att räkna ut accelerationen och hastigheten genom Eulers Metod i Matlab.
"D" är beroende utav "v" vilket har betydelse i beräkningen. Hur matar man in det? :)
Nuvarande Script är följande:
%Variables and Constants
p = 1.293 ; %Density of air [kg/m^3]
A = 0.45 ; %Cross-Sectional Area [m^2]
CD = 1.2 ; %Drag Coefficient [C]
w = 0 ; %Velocity of Air [m/s]
F = 400 ; %Force [N]
m = 80 ; %Mass [kg]
t = 6.3 ; %Time [s]
v = 100/6.3 ; %Velocity of Runner [m/s]
D = 0.5*p*CD*A*(v-w).^2 ; %Air Resistance Force [N]
g = 9.8; % m/sˆ2
y0 = 0.0;
v0 = 0.0;
time = 6.3;
dt = 0.00001;
n = ceil(time/dt)
y = zeros(n,1);
v = zeros(n,1);
a = zeros(n,1);
t = zeros(n,1);
y(1) = y0;
v(1) = v0;
for i = 1:n-1
a(i) = -g*-D*v(i);
v(i+1) = v(i) + a(i)*dt;
y(i+1) = y(i) + v(i+1)*dt;
t(i+1) = t(i) + dt;
D(i+1) = y(i) + v(i+1)*dt;
end
Som respons utav programmet vid körning av script:
Unable to perform assignment because the left and right sides have a different
number of elements.
Error in Eulers (line 26)
a(i) = -g*-D*v(i);
Vad i linjen är det som är felaktigt?
Som nybörjare i Matlab/Programmering tar jag gärna emot alla sorters feedback, tack på förhand (y)
Välkommen till Pluggakuten! Det var knepigt, varierar värdet av v, eller är v en konstant? Är w en konstant? Om D innehåller några variabler måste D deklareras som en funktion.
Generellt brukar felet du fått uppstå när ett led deklarerar ett värde, men det andra ledet innehåller en vektor eller matris. :)
Menar du möjligen
a(i) = -g*-D(i)*v(i);
?