Second Order Differential Equations in MatLab

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 4K views
nasko89
Messages
1
Reaction score
0
Hey guys, I am new to PF. I need to be able to model a stiff differential equation in MatLab. I haven't used MatLab before so I am not really sure how to set the function and boundary conditions for the equation:

y'' + (2/x)*Y' = (.7/x^2)*( (y^(-1/2)) - (.067)((1-y)^(-1/2) )

y(0)=0
y'(1)=1
The zero boundary is undefined and there is a lot of singularities in the solution itself.

So far I have:

function dy = f(x,y)
y = [1 1];
k = .7;
lambda = .67;
xspan = [0 10];
ic = [0 1];
dy=[y(2); (-2/x) * y(2) + (k/(x)^2)*( (y(1)^(-1/2)) - lambda*((1-y(1)))^(-1/2) )];
[x,y] = ode15s(@f,xspan,ic);
plot(x,y(:,1),'-o')

And I am getting a an error in the command console:

? Input argument "x" is undefined.

Error in ==> f at 7
dy=[y(2); (-2/x) * y(2) + (k/(x)^2)*( (y(1)^(-1/2)) -
lambda*((1-y(1)))^(-1/2) )];

I do not know where to go from here.
 
Physics news on Phys.org
Can someone help me out?You need to define the function for dy before calling it in ode15s. The syntax should be something like this: function dy = f(x,y) k = .7; lambda = .67; dy=[y(2); (-2/x) * y(2) + (k/(x)^2)*( (y(1)^(-1/2)) - lambda*((1-y(1)))^(-1/2) )];endxspan = [0 10];ic = [0 1];[x,y] = ode15s(@f,xspan,ic);plot(x,y(:,1),'-o')