how can i resolve this equation Runge kutta method
1 次查看(过去 30 天)
显示 更早的评论
y''+1=0
ddy/ddt + 1 =0
how can i resolve this equation with runge kutta method
6 个评论
James Tursa
2020-1-22
@adem: You need to show us what you have done so far and then we can help you with your code.
回答(2 个)
Jim Riggs
2020-1-22
Ths is the equation for a parabola.
y'' = -1
y' = -y
y = -1/2 y^2
No need for a numerical approximation.
James Tursa
2020-1-22
编辑:James Tursa
2020-1-23
You've got a 2nd order equation, so that means you need a 2-element state vector. The two states will be y and y'. All of your code needs to be rewritten with a 2-element state vector [y;y'] instead of the single state y. I find it convenient to use a column vector for this. So everywhere in your code that you are using y, you will need to use a two element column vector instead. E.g., some changes like this:
y = zeros(2,numel(t)+1); % pre-allocate the solution, where y(:,m) is the state at time t(m)
:
y(:,1) = [1;0]; % need to initialize two elements at first time, position and velocity
:
f = @(t,y)[y(2);-1]; % [derivative of position is velocity; derivative of velocity is acceleration = -1]
:
k1 = h*feval(f, t , y(:,m) ); % changed y(m) to y(:,m)
Also, you have a bug in the line that combines the k's ... you need (1/6)* instead of (1/6)+
Make an effort at implementing these changes and then come back with any problems you continue to have.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!