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 Constantsp = 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ˆ2y0 = 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-1a(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 differentnumber 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);
?