2 svar
96 visningar
Carde 1 – Fd. Medlem
Postad: 13 sep 2021 21:02

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)

Smutstvätt 23807 – Moderator
Postad: 13 sep 2021 21:51

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. :)

Laguna Online 28587
Postad: 13 sep 2021 21:56

Menar du möjligen

a(i) = -g*-D(i)*v(i);

?

Svara Avbryt
Close