Using Heun's Method but Problem With Increment
12 次查看(过去 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!