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

1 次查看(过去 30 天)
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!

采纳的回答

madhan ravi
madhan ravi 2018-11-25
编辑:madhan ravi 2018-11-25
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 个评论
Walter Roberson
Walter Roberson 2018-11-25
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by