Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

What is wrong with my code?

조회 수: 1 (최근 30일)
Ibrahim Butt
Ibrahim Butt 2020년 10월 25일
마감: MATLAB Answer Bot 2021년 8월 20일
% It finds the velocity using RK 4 method
clc; % Clears the screen
clear all;
h = input('Insert the value of the step size: '); % step size
t = 0:h:20; % Calculates till v(20)
v = zeros(1,length(t));
v(1) = input('Insert the value of the initial velocity: '); % initial condition
F_xy = @(v,t) 9.81 - ((0.28/85) * (v^2));
for i=1:(length(t)-1) % calculation loop
k_1 = F_xy(t(i),v(i));
k_2 = F_xy(t(i)+0.5*h,v(i)+0.5*h*k_1);
k_3 = F_xy((t(i)+0.5*h),(v(i)+0.5*h*k_2));
k_4 = F_xy((t(i)+h),(v(i)+k_3*h));
v(i+1) = v(i) + (1/6)*(k_1+2*k_2+2*k_3+k_4)*h % main equation
end

답변 (2개)

Cris LaPierre
Cris LaPierre 2020년 10월 25일
Nothing. It's doing exactly what you've told it to do.
You specified a stepsize of 0 (variable h).
This causes t to be an empty vetor.
t=0:0:20
t = 1×0 empty double row vector
This causes your for loop to never run, since 1:(length(t)-1) simplifies to 1:-1.
  댓글 수: 1
Ibrahim Butt
Ibrahim Butt 2020년 11월 3일
Thank you for helping me.

Alan Stevens
Alan Stevens 2020년 10월 25일
Your code works if you put in sensible numbers for step size and velocity.
Zero is not sensible!
  댓글 수: 1
Ibrahim Butt
Ibrahim Butt 2020년 11월 3일
Thank you for helping me.

태그

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by