Items tagged with ode ode Tagged Items Feed

Hi there,

I would like to compute and display the nullclines of a set of ordinary differential equations.

AFAIK, I can compute the nullclines in Maple by defining the equations and solving the system

e.g.:

# Define the equations
eq1 := u(t)*(1-u(t)/kappa)-u(t)*v(t) = 0;
eq2 := g*(u(t)-1)*v(t) = 0;

# Solve the system (i.e. compute the nullclines)
sol := solve({eq1, eq2}, {u(t), v(t)});

However, I am not quite able to imagine how to display them over a dfieldplot or a phaseportrait.

Attached is an example with some differential equations, and their vector field and trajectories: MaplePrimes_Predator_prey_model_nullclines.mw.

It can be use to illustrate how to (compute and) display the nullclines.

 

Thank you,

jon

I am also not sure how to program a check in the code to determine that dsolve solved the differential equation.

For example

ode:=diff(y(x),x)-a*(x^n-x)*y(x)^3-y(x)^2=0;
sol:=dsolve(ode,y(x));

In this case, sol is () as it could not solve it. When I tried odetest, I get an error

odetest(sol,ode);

Error, invalid input: odetest uses a 2nd argument, ODE, which is missing

What is the correct way to check dsolve was successful that will work for all cases? I am looking for programmable method, no GUI use.

 

 

 

 

Hallo. I'm solving a initial value problem for system of 7 ODE:

dsn := dsolve({expand(maineq[1, 1]), expand(maineq[1, 2]), expand(maineq[1, 3]), expand(maineq[1, 4]), expand(maineq[1, 5]), expand(maineq[1, 6]), expand(maineq[1, 7]), T(0) = .5, u(0) = u0, Y[1](0) = .8, Y[2](0) = .2, Y[3](0) = 0, Y[4](0) = 0, Y[5](0) = 0}, numeric, method = lsode[backfull])

 

Is there easy way how to plot result?

 

 

 

Hi,

I'm trying to solve the following non-linear ODE numerically:

by ececuting

but maple gives me this error-message:

"Error, (in dsolve/numeric/make_proc) Could not convert to an explicit first order system due to 'RootOf'"

I couldnt find any useful information in the manual. What does this error mean? Is there something wrong with my maple code or is there just no solution for this particulare differential equation?

 

Thanks in advance

I got a problem with solving a second order ODE. 

The ODE is :

-V(xi)+(1/2)*xi*(diff(V(xi), xi))+(1/4)*(diff(V(xi), xi, xi))=-(1/2)*k2*(diff(H(xi), xi))-k1*n*X/E+1+k2

where k1,k2,n,X,E  all are constant.

the condition is :

V(xi) tends to 2*xi^2 as xi tends to infinity.

I used 'dsolve' to solve the equation firstly, and got a solution with two constant C1 and C2, I want to use the condition to elimilate C2, so I used limit(sol,xi=infinity)=2*xi^2. But when I used the command 'limit', I can't get the answer.

Could any one help me? 

Many thanks!!!

Hi,

 

I'm trying to solve the following differential equation numerically with dsolve:

but dsolve gives me this error:

> res := dsolve(DGL, numeric, parameters = [y0, A, B, C, E]);
Error, (in DEtools/convertsys) unable to convert to an explicit first-order system

I think the problem is that I use the wrong solver. Does Maple provide a solver which is capable of solving this kind of equations (nonlinear ODE)?

 

Thanks in advance!

 

Hello,

Im solving 4 ODE equations with BC. im trying to shoot the initial value but im having this error:

""Error, (in isolate) cannot isolate for a function when it appears with different arguments""

anyone could help me???

shooting92.mw

``

restart

Shootlib := "E:\\shooting/":

libname := Shootlib, libname:

with(Shoot):

with(plots):

n := 2:

FNS := {F(eta), H(eta), f(eta), g(eta), u(eta), v(eta)}:

ODE := {g(eta)*(diff(g(eta), eta))+B*(f(eta)+g(eta)) = 0, g(eta)*(diff(F(eta), eta))+F(eta)^2+B*(F(eta)-u(eta)) = 0, g(eta)*(diff(H(eta), eta))+H(eta)*(diff(g(eta), eta))+F(eta)*H(eta) = 0, diff(v(eta), eta)+f(eta)*v(eta)-u(eta)^2+B*H(eta)*(F(eta)-u(eta))-M*u(eta) = 0, diff(f(eta), eta) = u(eta), diff(u(eta), eta) = v(eta)};

{g(eta)*(diff(H(eta), eta))+H(eta)*(diff(g(eta), eta))+F(eta)*H(eta) = 0, g(eta)*(diff(g(eta), eta))+0.2e-1*f(eta)+0.2e-1*g(eta) = 0, g(eta)*(diff(F(eta), eta))+F(eta)^2+0.2e-1*F(eta)-0.2e-1*u(eta) = 0, diff(v(eta), eta)+f(eta)*v(eta)-u(eta)^2+0.2e-1*H(eta)*(F(eta)-u(eta))-3*u(eta) = 0, diff(f(eta), eta) = u(eta), diff(u(eta), eta) = v(eta)}

(1)

IC := {F(0) = gamma, H(0) = Q, f(0) = 0, g(0) = z, u(0) = 1, v(0) = alpha};

{F(0) = gamma, H(0) = Q, f(0) = 0, g(0) = z, u(0) = 1, v(0) = alpha}

(2)

BC := {F(L) = 0, H(L) = n, g(L) = -f(L), u(L) = 0};

{F(6) = 0, H(6) = 2, g(6) = -f(6), u(6) = 0}

(3)

infolevel[shoot] := 1:

S := shoot(ODE, IC, BC, FNS, [alpha = 0, gamma = 0, z = -.2, Q = 0])

Error, (in isolate) cannot isolate for a function when it appears with different arguments

 

``

``


Download shooting92.mw

Hi everyone, I have been trying to plot the Taylor Polynomial approximation with the following code. However, my maple crushes everytime I run it. I indexed some of the variables to get the plot. The code works fine without the index. What did I do wrong?

y := array(1 .. 2);

Digits := 10;

n := 30;

h := .1;

T := 0;

X := 1; 

f := (x, t) -> 1/(3*x(t)-t-2); 

one := 1/(3*x(t)-t-2);

two := diff(f(x, t), t);

first := diff(x(t), t)

 

for k to n do

y[1] := subs(t = T(k), x(T(k)) = X(k), one);

y[2] := subs(first = y[1], t = T, x(T(k)) = X(k), two);

X[k+1] := X+sum(y[i]*h^i/factorial(i), i = 1 .. 2);

T[k+1] := T+h

end do;

X[n];

data := [seq([T[n], X[n]], n = 0 .. 30)];

p[2] := plot(data, style = point, color = blue);

p[3] := plot(data, style = line, color = blue);
display(p[2],  p[3])


 

The code without Index (which works fine)

y := array(1 .. 2);

Digits := 10;

n := 30;

h := .1;

T := 1;

X := .1547196278;

f := (x, t) -> 1/(3*x(t)-t-2); 

one := x(t)^4*e^t-(1/3)*x(t);

two := diff(f(x, t), t);

first := diff(x(t), t);

for k to n do

y[1] := subs(t = T, x(T) = X, one);

y[2] := subs(first = y[1], t = T, x(T) = X, two);

X := X+sum(y[i]*h^i/factorial(i), i = 1 .. 2);

T := T+h

end do

Dear All,

I need your help to plot the phase portrait using DEtools[DEplot]  these are the lines of the code. But when I make RUN, there is an error. I need your help to fix the error. Many thinks.

 

r1:=1; r2:=1; q2:=2; q1=0.5;  a1:=1;

Sys1 := {diff(N(t),t) = r1*N*(1-N/q1)-P*N/(1+N), diff(P(t),t) = r2*P*(exp(-a1*P)-q2)+P*N/(1+N)};

DEtools[DEplot](Sys1,[N(t),P(t)],t=-10..10,N=0..2,P=0..2);

 

Many thinks

I have an ode in the form:

 

diff(u(x),x)-f(x)=u(x)^3+B(X)*u(x)+g(x)

how to extaract and name the different coefficients of the equation?

 

Thanks 

Hamada

So I am brand new to using Maple and am trying to solve a system of ODE's. When I try and use dsolve however I reciever the error "function expected" and I am not sure why. The code I have is as follows

 

sys_ode := diff(A(t), t) = a*(A(t)+B(t))-b1*A(t)*(C(t)+D(t))-g1*A(t)*B(t), diff(B(t), t) = -b2*B(t)*(C(t)+D(t))+g1*A(t)*B(t), diff(C(t), t) = e*(b1*A(t)+b2*B(t))*C(t)-g2*b2*C(t)*B(t)-g3*C(t)*D(t), diff(D(t), t) = g2*b2*C(t)*D(t)-m*D(t)

dsolve([sys_ode])

 

I'm sure it is something simple, but I just can't seem to figure out where the issue is. Any help is much appreciated.

I'm trying to substitute one Differential equation into another differential equation.

 

eq1:=d*n(t)/dt = (rho(t)-beta)*n(t)/Lambda+lambda*C(t)+q

eq2:=diff(eq1, t)

resulting in -> eq2 := d*(diff(n(t), t))/dt = (diff(rho(t), t))*n(t)/Lambda+(rho(t)-beta)*(diff(n(t), t))/Lambda+lambda*(diff(C(t), t))

then I'm given that (diff(C(t), t)) is given by another equation: 

eq3:=d*C(t)/dt = beta*n(t)/Lambda-lambda*C(t)

 

At this point I'm trying to substitute equation 3 into equation 2 for diff(C(t),t)

eq4 := subs(diff(C(t), t) = rhs(eq2), eq5)

 

however no matter what way's I try this I get an error: 

Error, (in simpl/reloprod) invalid terms in product: (d*(diff(n(t), t))/dt = (diff(rho(t), t))*n(t)/Lambda+(rho(t)-beta)*(diff(n(t), t))/Lambda+lambda*(diff(C(t), t)))^-1

 

I then tried to map it but again i got an error specifically about the first parameter: 

Error, invalid operator parameter name

eq5:=map((d/dt C(t))->beta/Lambda*n(t)-lambda*C(t),eq2)

 

I'm just wondering if what I am trying to do is even possible in Maple? 

If anyone can help I would greatly appreciate it! 

i am solving 3 ODE with boundary condition.. with boundary condition

 

b.mw

Maple Worksheet - Error

Failed to load the worksheet /maplenet/convert/b.mw .

Download b.mw

 

then i got this error

Error, (in dsolve/numeric/bvp) initial Newton iteration is not converging

i dont know where i need to change.. could you help me..

 

Dear Friends,

My present problem is to calculate the coefficients  

of ODES based on the experiment data. In order to simulate the actual experiment, a set of  is given with . Then the experiment data (yexp) can be calculated. Finally, the least-squares method (lsq) is used to calculate the coefficient values. Now the NLPSolve function can be used. However, the globalsolve cant run.

 

If it is convenient for you, wish you can solve it.

 

Code:

 

restart;
cdm_ode := diff(y1(t), t) = c0*(y6(t)*(1-y3(t))/(s0*(1-y4(t)*(1-y5(t)))))^n/(1-y2(t)), diff(y2(t), t) = ks*y2(t)^(1/3)*(1-y2(t)), diff(y3(t), t) = h1*(1-y3(t)/h2)*c0*(y6(t)*(1-y3(t))/(s0*(1-y4(t)*(1-y5(t)))))^n/(sigma*(1-y2(t))), diff(y4(t), t) = (1/3)*kp*(1-y4(t))^4, diff(y5(t), t) = A*B*y1(t)^(B-1)*c0*(y6(t)*(1-y3(t))/(s0*(1-y4(t)*(1-y5(t)))))^n/(1-y2(t)), diff(y6(t), t) = y6(t)*c0*(y6(t)*(1-y3(t))/(s0*(1-y4(t)*(1-y5(t)))))^n/(1-y2(t));

 

tol_t := 3600;
sol := dsolve([cdm_ode, y1(0) = 0, y2(0) = 0, y3(0) = 0, y4(0) = 0, y5(0) = 0, y6(0) = 175], numeric, range = 0 .. tol_t, output = listprocedure, parameters = [c0, n, sigma, s0, ks, h1, h2, kp, A, B]);

sol(parameters = [5.7*10^(-6), 10.186, 175, 200, 5*10^(-8), 10000, .269, 1.5*10^(-7), 1.5, 2]);

t := [seq(i^2, i = 0 .. 50, 1)];

y1data := subs(sol, y1(t));
 
y1exp := [seq(y1data(t[i]), i = 1 .. 51)];

err := proc (c0, n, s0, ks, h1, h2, kp, A, B) local y1cal, y1val, lsq; sol(parameters = [c0, n, 175, s0, ks, h1, h2, kp, A, B]); y1cal := subs(sol, y1(t)); y1val := [seq(y1cal(t[i]), i = 1 .. 51)]; lsq := add((y1val[i]-y1exp[i])^2, i = 1 .. 51); lsq end proc;

with(Optimization);
val := NLPSolve(err, 10^(-8) .. 10^(-4), 2 .. 20, 150 .. 250, 10^(-2) .. 1, 100 .. 20000, 10^(-5) .. .4, 10^(-5) .. 1, .5 .. 2, 1 .. 10);
GlobalSolve(err, 10^(-10) .. 10^(-4), 2 .. 20, 150 .. 250, 0 .. 1, 100 .. 15000, 0 .. .5, 0 .. 1, .5 .. 2, 1 .. 5);


Error, (in GlobalOptimization:-GlobalSolve) `InertForms` does not evaluate to a module

 

 

 

 

 

1 2 3 4 5 6 7 Last Page 3 of 21