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

조회 수: 2 (최근 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