Using Heun's Method but Problem With Increment
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi everyone,
I'm really new to programming and try to use Heun's Method to this skydiving problem, but I kept getting this error, "Unable to perform assignment because the left and right sides have a different number of elements. Error in EulervsHeunStart (line 17)
vh(i) = vh;"
I know I have to use the increment to get the second slope (corrector). Here's my script:
while t<=tend
%save both velocities at time ti
vh(i) = vh;
ve(i) = ve;
tim(i)= t;
%good old Euler
a = g-c/m*ve.^2;
ve = ve+a*dt;
% x = x+v*dt;
%Heun: compute slope at ti
a = g-c/m*vh.^2;
%compute predicted velocity at ti+1
vh = vh+a*dt;
%compute second slope at v(ti+1)
a = g-c/m*vh(i).^2;
vh(i+1) = vh(i)+a*dt;
%compute average of both slopes
%use average slope for extrapolating v from ti to ti+1
%increments
t=t+dt;
i=i+1;
end
Thank you!
댓글 수: 2
채택된 답변
darova
2021년 8월 29일
I think you should use index (i) everywhere. vh variable has two elements after first iteration
You trying to assign two elements into one position in this line
vh(i) = vh;
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!