Find difficult in solving these four coupled ODE's using ODE45....I have attached a file regarding these equations..

2 views (last 30 days)
function dy=pair(t,y,a,b,d,hstress,sigma,Hstar,kc,c)
dy(1)= a*sinh((b*(sigma^d)*(1-y(2)))/((1-y(3))*(1-y(4)))) ;
dy(2)=((hstress*(a*sinh(b*(sigma^d)*(1-y(2)))/(1-y(3))*(1-y(4))))/(sigma^d))*(1-y(2)/Hstar);
dy(3)=(kc/3)*power((1-y(3)),4);
dy(4)= c*y(1);
dy=dy';
end
Error
>> a=0.5179;
>> b=1.1003E-3;
>> c=0.4576;
>> d=1;
>> hstress=3463.46;
>> Hstar=0.7846;
>> Kc=0.1137;
>> tspan=0:0.01:40;
pair
Error using pair (line 3)
Not enough input arguments.
>> pair
Error using pair (line 3)
Not enough input arguments.
>> [t,y]=ode45(@pair,tspan,[0 0 0 0 0]);
I suspect I know a bit of what's going wrong, yet I'm at a loss for how to fix it. Any help is much appreciated!

Accepted Answer

madhan ravi
madhan ravi on 25 Nov 2018
Edited: madhan ravi on 25 Nov 2018
a=0.5179;
b=1.1003E-3;
c=0.4576;
d=1;
hstress=3463.46;
Hstar=0.7846;
Kc=0.1137;
tspan=0:0.01:40;
initial_conditions=[0;0;0;0] %change the intial condition according to your values
[t,y]=ode45(@(t,y)pair(t,y,a,b,d,hstress,sigma,Hstar,Kc,c),tspan,initial_conditions) %function call
plot(t,y(:,1))
function dy=pair(t,y,a,b,d,hstress,sigma,Hstar,kc,c) %function definition
dy=zeros(4,1);
dy(1)=a*sinh((b*(sigma^d)*(1-y(2)))/((1-y(3))*(1-y(4)))) ;
dy(2)=((hstress*(a*sinh(b*(sigma^d)*(1-y(2)))/(1-y(3))*(1-y(4))))/(sigma^d))*(1-y(2)/Hstar);
dy(3)=(kc/3)*power((1-y(3)),4);
dy(4)=c*y(1);
end
Screen Shot 2018-11-25 at 11.29.29 AM.png
  11 Comments
Walter Roberson
Walter Roberson on 25 Nov 2018
y(4) goes to 1. You have
dy(1)=a*sinh((b*(sigma^d)*(1-y(2)))/((1-y(3))*(1-y(4)))) ;
so 1-y(4) goes to 0, and that is a denominator so dy(1) goes to infinity.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!