Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Differential equation and ode45 or ode15i
Replies: 10   Last Post: Jan 28, 2014 3:14 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Torsten

Posts: 1,470
Registered: 11/8/10
Re: Differential equation and ode45 or ode15i
Posted: Jan 27, 2014 10:26 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"shatrah " <shatrah1978@gmail.com> wrote in message <lc5sso$kdh$1@newscl01ah.mathworks.com>...
> "Torsten" wrote in message <lc5r64$o8h$1@newscl01ah.mathworks.com>...
> > "shatrah " <shatrah1978@gmail.com> wrote in message <lc5q4c$4a9$1@newscl01ah.mathworks.com>...
> > > "Torsten" wrote in message <lc5mi0$n5t$1@newscl01ah.mathworks.com>...
> > > > "shatrah " <shatrah1978@gmail.com> wrote in message <lc35in$d3g$1@newscl01ah.mathworks.com>...
> > > > > dq/dz=dy/dz+q
> > > > > dy/dz=z*y
> > > > > ds/dz=dy/dz+dq/dz
> > > > >
> > > > > y=10, dy/dz=0 for z=0
> > > > > z=15, dz/dz=0 for z=0
> > > > > q=11, dq/dz=0 for z=0
> > > > >
> > > > >
> > > > > 1- how can solve this problem ? using ode45 or ode15i
> > > > >
> > > > >
> > > > > if i need to use ode45 can make like this
> > > > >
> > > > > dy(1)=dy(2)+y(1)
> > > > > dy(2)=y(2)*z
> > > > > dy(3)=dy(2)+dy(1)
> > > > >
> > > > >
> > > > > as a function filw ?
> > > > >
> > > > > Thanks

> > > >
> > > > function dy = test(z,y)
> > > > dy = zeros(3,1); % a column vector
> > > > dy(1)=z*y(2)+y(1);
> > > > dy(2)=z*y(2);
> > > > dy(3)=2*z*y(2)+y(1);
> > > >
> > > > But I don't understand your initial conditions:
> > > > y=10, dy/dz=0 for z=0
> > > > z=15, dz/dz=0 for z=0
> > > > q=11, dq/dz=0 for z=0
> > > >
> > > > Best wishes
> > > > Torsten.

> > >
> > > Dont look at my initial conditions , its just example ,
> > > my question can put like this dy(1)=dy(2) ??
> > >

> >
> > Yes, you can. Just insert the expressions for the derivatives from the other equations.
> > dy(1)=dy(2)+y(1) can be written as dy(1)=z*y(2)+y(1) since dy(2)=z*y(2).
> > Likewise dy(3)=dy(2)+dy(1) can be written as dy(3)=2*z*y(2)+y(1) since
> > dy(2)=z*y(2) and dy(1)= z*y(2)+y(1).
> >
> > Best wishes
> > Torsten.

>
> on my expression i need to write dy(1)=dy(2)+y(1) Instead of dy(1)=z*y(2)+y(1) ? so i can do than without any problem or logic problems ?


I don't understand what you are asking for.
If your equations read
> > > > > dq/dz=dy/dz+q
> > > > > dy/dz=z*y
> > > > > ds/dz=dy/dz+dq/dz,

write them as
dq/dz=z*y+q
dy/dz=z*y
ds/dz=z*y+z*y+q
and implement them as
> > > > function dy = test(z,y)
> > > > dy = zeros(3,1); % a column vector
> > > > dy(1)=z*y(2)+y(1);
> > > > dy(2)=z*y(2);
> > > > dy(3)=2*z*y(2)+y(1);

for ODE45.
If you want to stick to the formulation
> > > > > dq/dz=dy/dz+q
> > > > > dy/dz=z*y
> > > > > ds/dz=dy/dz+dq/dz,

rewrite the system as
> > > > > dq/dz-dy/dz=q
> > > > > dy/dz=z*y
> > > > > ds/dz-dy/dz-dq/dz=0

and define a mass-matrix different from the identity matrix for the ODE solvers.
Search for "mass matrix" under
http://www.mathworks.de/de/help/matlab/ref/ode45.html

Best wishes
Torsten.




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.