Solve second order differential equation with independent variable
2 次查看(过去 30 天)
显示 更早的评论
I need the solution to the following second order differential equation:
D2y+(2/x)*Dy= 10*(y/(1+y));
I want to use ode45 for this. I have split the equation in the following manner :
%y(1)=y(x);
%y(2)=Y'(x);
So the equation can be written as :
y'(1)=y(2);
y'(2)=10*(Y(1)/(1+(y(1)))-(2/x)*Y(2);
When I solve this usind ode45, I get a matrix comprising of Nan values.
I believe the variation of the independent variable, i.e x, cannot be done like this.
I am not sure how to solve this.
Any help would be appreciated. Thanks! :)
2 个评论
回答(1 个)
Azzi Abdelmalek
2014-1-28
编辑:Azzi Abdelmalek
2014-1-28
Your function should be:
function dz=myode45(x,z)
dz(1,1)=z(2)
dz(2,1)=-2*z(2)/x+10*z(1)/(z(1)+1)
%Call myode45
tspan=[0.1 10];
% don't start tspan at 0, because in your equation there is -2z(2)/x
y0=[0;1]; % initial conditions
[x,y]=ode45('myode45',tspan,y0)
4 个评论
Azzi Abdelmalek
2014-1-28
tspan=[t0 tf] % t0 is a start time, and tf is a final time
x represent time or whatever you want. It's in your equation
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!