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!
采纳的回答
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!