Items tagged with ode

Hello everybody,

I'm trying to solve two ODEs analytically but it returns this 'Warning, it is required that the numerator of the given ODE depends on the highest derivative. Returning NULL'. See the worksheet Parallel_flow.mw

Thanks.

convert(Matrix(2, 2, {(1, 1) = (s-2)/(s^2-s-12), (1, 2) = -5/(s^2-s-12), (2, 1) = -2/(s^2-s-12), (2, 2) = (s+1)/(s^2-s-12)}), parfrac);
%;
Error, (in convert/parfrac) input must be a rational polynomial in s

gives me that error and i assume I can not use this command for matrix opperations if that is true is there a way to do it such as issolateing each element and doing each individually and putting it back into a matrix is that posible if so can someone show me the code for that?

 

Hello, 

      I am a student doing some self study over the summer trying to work through some of the John Taylor computer problems from his classcial mechanics book. Currently I hit a snag that most likely comes from the fact I am not well acquinted with Maple for solving IVP and DE's (we used Matlab in my DE class). I just need to know how I remove the following error:

Error, (in dsolve/numeric/SC/IVPsetup) initial conditions must be numeric

Here is a copy of my code:

R := 5;
5
g := 9.8;
9.8
deq1 := {diff(x(t), [`$`(t, 2)]) = -g*sin(x(t))/R, x(0) = 20};
/ d / d \ \
{ --- |--- x(t)| = -1.960000000 sin(x(t)), x(0) = 20 }
\ dt \ dt / /
dsol1 := dsolve(deq1, numeric);
Error, (in dsolve/numeric/SC/IVPsetup) initial conditions must be numeric

My hunch is that I need to set x'(0)=0 or something like I do not have enough intial values to solve the problem, but I could be wrong. Anyway anyone who can point out my mistake feel free to do so! Thank you!

Hi,

sorry for that question, i'm a beginner in maple but i think my question is not as simple.

So, i want to solve numerically this first equation :

but the second term is present only if k*(U*t-x)>μc*m*g  (stick-slip problem)

initial conditions : U=1m/s; x=0m; k=10 for example

My problem is simple, i don't know how to use conditional statement for such an ode in maple.

I've tried > Xr := U*t-x;
> k := 10; m := 1; g := 10; mu := .2;
> if k*Xr > mu*m*g then ode1 := m*(diff(x(t), t, t)) = k.Xr-mu*m*g else ode1 := m*(diff(x(t), t, t)) = k.Xr end if;

But, of course, too optimistic.

Thank to anyone who will solve that (isuppose) simple problem

Philippe

Please, i need help USING ODE1 and ODE2 with given BCS and Pr=0.714

it is needed to to generates   

                   [-0.2], [0.51553], [0.4000]
                  [-0.1], [0.57000], [0.4371]
                   [0.], [0.62756], [0.4764]
                  [0.1], [0.68811], [0.5176]
                  [0.2], [0.75153], [0.5609]

but it is generarting

                  [-0.2], [0.51553], [0.42342]
                  [-0.1], [0.57000], [0.46114]
                   [0.], [0.62756], [0.50088]
                  [0.1], [0.68811], [0.54261]
                  [0.2], [0.75153], [0.58628]

the values of D(theata)(0) is wrong. Please i need HELP. this the code below that i use:
>restart;
>with (plots):ode1:=diff(f(eta),eta,eta,eta)+f(eta)*diff(f(eta),eta,eta)-M*diff(f(eta),eta)=0:

>ode2:=diff(theta(eta),eta,eta)+Pr*f(eta)*diff(theta(eta),eta)=0:

>bcs1:= f(0)=w,D(f)(0)=1,D(f)(10)=0:
>bcs2theta(10)=0,theta(0)=1:
>fixedparameter1:=[M=0.0]:
>ode3:=eval(ode1,fixedparameter1):
>fixedparameter2:=[Pr=0.714]:
>ode4:=eval(ode2,fixedparameter2):

>G:=[-0.2,-0.1,0.0,0.1,0.2]:
>for ode3 and ode4:
  for k from 1 to 5 do
  sol_All:=dsolve(eval({ode3,ode4,bcs1},w=G[k]),    [f(eta),theta(eta)],numeric,output=listprocedure);
Y_sol||k:= -rhs(sol_All[4]);
YP_sol||k:=-rhs(sol_All[6]);
end do:
>Digits:=5:

>for k from 1 to 5 do
evalf([G[k]]),evalf([(Y_sol||k(0))]),evalf([YP_sol||k(0)]);    
od;
                  [-0.2], [0.51553], [0.42342]
                  [-0.1], [0.57000], [0.46114]
                   [0.], [0.62756], [0.50088]
                  [0.1], [0.68811], [0.54261]
                  [0.2], [0.75153], [0.58628]

Dear Colleges

I have a problem with the following code. As you can see, procedure Q1 converges but I couldn't get the resutls from Q2.

I would be most grateful if you could help me on this problem.

 

Sincerely yours

Amir

 

restart;

Eq1:=diff(f(x),x$3)+diff(f(x),x$2)*f(x)+b^2*sqrt(2*reynolds)*diff(diff(f(x),x$2)^2*x^2,x$1);
Eq2:=diff(g(x),x$3)+diff(g(x),x$2)*g(x)+c*a^2*sqrt(2*reynolds)*diff(diff(g(x),x$2)^2*x,x$1);
eq1:=isolate(Eq1,diff(f(x),x,x,x));
eq2:=subs(g=f,isolate(Eq2,diff(g(x),x,x,x)));
EQ:=diff(f(x),x,x,x)=piecewise(x<c*0.1,rhs(eq1),rhs(eq2));
Eq11:=diff(theta(x),x$2)+pr*diff(theta(x),x$1)*f(x)+pr/prt*b^2*sqrt(2*reynolds)*diff(diff(f(x),x$2)*diff(theta(x),x$1)*x^2,x$1);
Eq22:=diff(g(x),x$2)+pr*diff(g(x),x$1)*f(x)+pr/prt*a^2*c*sqrt(2*reynolds)*diff(diff(f(x),x$2)*diff(g(x),x$1)*x^1,x$1);
eq11:=isolate(Eq11,diff(theta(x),x,x));
eq22:=subs(g=theta,isolate(Eq22,diff(g(x),x,x)));
EQT:=diff(theta(x),x,x)=piecewise(x<c*0.1,rhs(eq11),rhs(eq22));
EQT1a:=eval(EQT,EQ):
EQT2:=eval(EQT1a,{f(x)=G0(x),diff(f(x),x)=G1(x),diff(f(x),x,x)=G2(x)}):
bd:=c;
a:=0.13:
b:=0.41:
pr:=1;
prt:=0.86;
reynolds:=12734151.135786774055543653356602;     #10^6;   #1.125*10^8:

c:=88.419896050808975395120916434619:
;
Q:=proc(pp2) local res,F0,F1,F2;
print(pp2);
if not type(pp2,numeric) then return 'procname(_passed)' end if:
res:=dsolve({EQ,f(0)=0,D(f)(0)=0,(D@@2)(f)(0)=pp2},numeric,output=listprocedure);
F0,F1,F2:=op(subs(subs(res),[f(x),diff(f(x),x),diff(f(x),x,x)])):
F1(bd)-1;
end proc;
fsolve(Q(pp2)=0,pp2=(0..1002));
se:=%;
res2:=dsolve({EQ,f(0)=0,D(f)(0)=0,(D@@2)(f)(0)=se},numeric,output=listprocedure):
G0,G1,G2:=op(subs(subs(res2),[f(x),diff(f(x),x),diff(f(x),x,x)])):
plots:-odeplot(res2,[seq([x,diff(f(x),[x$i])],i=1..1)],0..c);



Q2:=proc(rr2) local solT,T0,T1;
print(rr2);
if not type(rr2,numeric) then return 'procname(_passed)' end if:
solT:=dsolve({EQT2,theta(0)=1,D(theta)(0)=-rr2},numeric,known=[G0,G1,G2],output=listprocedure):
T0,T1:=op(subs(subs(res),[theta(x),diff(theta(x),x)])):
T0(bd);
end proc;
fsolve(Q2(rr2)=0,rr2=(0..100));


shib:=%;
sol:=dsolve({EQT2,theta(0)=1,D(theta)(0)=-shib},numeric,known=[G0,G1,G2],output=listprocedure):
plots:-odeplot(sol,[x,theta(x)],0..c);
#fsolve(Q2(pp3)=0,pp3=-2..2):

Amir

Hello,

please help check what's wrong with this code. I need the analytic solution and convert to Bessel but return error. Here is the worksheet ID_1.mw

Best regards.

Hello,

After solving ode I am looking only for the values >=1.5. For example at t=1, y(t)=3.8940.

How can I extract the values >= 1.5 from the solution to use it as data (t,y(t)) and save it ?

restart;
with(DEtools); with(plots);
eqn := diff(y(t), t) = -.25*y(t);

 init := y(0) = 5;

sol := dsolve({eqn, init}, {y(t)}, numeric, output = array([seq(i, i = 0 .. 50)]));
p[1] := plot(1.5, t = 0 .. 50, colour = black);

p[2] := odeplot(sol, [t, y(t)], t = 0 .. .50, colour = red);

display(p[1], p[2]);

 

Thanks

Dear Friends,

I am solving 6 ODEs using maple15. then i got this error. anyone know abou this? thank you.

problem2.mw

 

 

restart:with (plots): B:=1:M:=1:Gr:=0.5:Pr:=3:w:=0.02:blt:=5:Bi:=10:

Eq1:=diff(f(eta),eta,eta,eta)-(diff(f(eta),eta))^(2)+f(eta)*diff(f(eta),eta,eta)+B*H(eta)*(F(eta)-diff(f(eta),eta))-M*diff(f(eta),eta)+Gr*theta(eta)=0;

diff(diff(diff(f(eta), eta), eta), eta)-(diff(f(eta), eta))^2+f(eta)*(diff(diff(f(eta), eta), eta))+H(eta)*(F(eta)-(diff(f(eta), eta)))-(diff(f(eta), eta))+.5*theta(eta) = 0

(1)

Eq2:=(1+Nr)*diff(theta(eta),eta,eta)+Pr*f(eta)*diff(theta(eta),eta)+(2/3)*H(eta)*B*(theta1(eta)-theta(eta))=0;

(1+Nr)*(diff(diff(theta(eta), eta), eta))+3*f(eta)*(diff(theta(eta), eta))+(2/3)*H(eta)*(theta1(eta)-theta(eta)) = 0

(2)

Eq3:=H(eta)*F(eta)+H(eta)*diff(G(eta),eta)+G(eta)*diff(H(eta),eta)=0;

H(eta)*F(eta)+H(eta)*(diff(G(eta), eta))+G(eta)*(diff(H(eta), eta)) = 0

(3)

Eq4:=F(eta)^2+G(eta)*diff(F(eta),eta)+B*(F(eta)-diff(f(eta),eta))=0;

F(eta)^2+G(eta)*(diff(F(eta), eta))+F(eta)-(diff(f(eta), eta)) = 0

(4)

Eq5:=G(eta)*diff(G(eta),eta)+B*(f(eta)+G(eta))=0;

G(eta)*(diff(G(eta), eta))+f(eta)+G(eta) = 0

(5)

Eq6:=G(eta)*diff(theta1(eta),eta)+l*B*(theta1(eta)-theta(eta))=0;

G(eta)*(diff(theta1(eta), eta))+l*(theta1(eta)-theta(eta)) = 0

(6)

bcs:=f(0)=0,(D(f))(0)=1,(D(theta))(0)=-Bi*(1-theta(0)),(D(f))(blt)=0,F(blt)=0,G(blt)=-f(blt),H(eta)=w,theta(blt)=0,theta1(blt)=0;

f(0) = 0, (D(f))(0) = 1, (D(theta))(0) = -10+10*theta(0), (D(f))(5) = 0, F(5) = 0, G(5) = -f(5), H(eta) = 0.2e-1, theta(5) = 0, theta1(5) = 0

(7)

L:=[0.5,1,1.5,2];

[.5, 1, 1.5, 2]

(8)

for k from 1 to 4 do p:=dsolve(eval({Eq1,Eq2,Eq3,Eq4,Eq5,Eq6,bcs},Nr=L[k]),[f(eta),F(eta),G(eta),H(eta),theta(eta),theta1(eta)],numeric,output=listprocedure);end do:

Error, (in dsolve/numeric/bvp) unevaluated names in system not allowed: {Y[9], Y[10]}

 

``

``

``

 

Download problem2.mw

Hello,

I am solving a large system of ODEs, using the following command,


> Sol := dsolve({seq(ode[j], j = 0 .. 21), seq(v[j](0) = 0, j = 1 .. 21), v[0](0) = 1}, [seq(v[j](t), j = 0 .. 21)]);

>

 

and then plot the quantities I want by something like

> plots:-odeplot(Sol, [t, v[3](t)+v[5](t)], t = 0 .. 1.5);

My problem is that, I do not know a priori which quantity I want to plot, and plotting using above method requires solving the ODEs each time separately, which takes a long time.

 

So I was curious if there is a scheme that I can solve my system for once and for all, and then plot any quantities that I would like to see.

Hello,

The idea: parameter "a" will have a new random value each 10 days.

The way I did it is working but it can get very long especially if I do it for a system of equations and for long time more than a year (365 days).

The code:

with(DEtools); with(plots);
n := 5;

for i to n do Ra[i] := RandomTools:-Generate(distribution(Uniform(0.1e-1, .5))); a[[i]] := Ra[i] end do;

b := 0.1e-2;

T := 10;

 eq := diff(L(t), t) = a*L(t)-b;

init[1] := L(0) = 100;
 sol[1] := dsolve({init[1], subs(a = a[[1]], eq)}, L(t), range = 0 .. T, numeric);


init[2] := L(T) = rhs(sol[1](T)[2]);

sol[2] := dsolve({init[2], subs(a = a[[2]], eq)}, L(t), range = T .. 2*T, numeric);

 

init[3] := L(2*T) = rhs(sol[2](2*T)[2]);
sol[3] := dsolve({init[3], subs(a = a[[3]], eq)}, L(t), range = 2*T .. 3*T, numeric);

p[1] := odeplot(sol[1], [t, L(t)], t = 0 .. T);

p[2] := odeplot(sol[2], [t, L(t)], t = T .. 2*T);

p[3] := odeplot(sol[3], [t, L(t)], t = 2*T .. 3*T);

p := display([p[1], p[2], p[3]]);
display(p);

 

Thank you

Hi Guys,

I am trying to solve the folling ODE in maple but am struggling to get to the correct solution. I first of all have the following equations;

Diff(V(x), [x]) = q(x)

Diff(M(x), [x]) = V(x)

theta(x) = Diff(v(x),[x])

M(x)=EI*theta(x)

Which give me the following;

q(x) = Diff(EI*(Diff(v(x), [`$`(x, 2)])), [`$`(x, 2)])

With thw boundary conditions;

M(l) = 0, M(0) = 0, v(0) = 0, v(l) = 0

The given solution is;

v(x)=(qx/24EI)*(x^3-2lx^2+l^3)

Anything that might point me in the right direction would be great!

Cheers

Steve

 

 

Attached is a photo with the code I am working for.  

On the top is practice code with a simpler ODE to help with trouble shooting, on the bottom is the ODE I am working with.

I was hoping to gain insight about the _z1 symbol in the solution, I haven't been able to find much help on other threads.  I would like to know how I can go about working with it - if it is something on my end or if it is the nature of the equation I am working with.

 

Thank you for any help,

Josh

This is the simplest method to explain numerically solving an ODE, more precisely, an IVP.

Using the method, to get a fell for numerics as well as for the nature of IVPs, solve the IVP numerically with a PC, 10steps.

Graph the computed values and the solution curve on the same coordinate axes.

 

y'=(y-x)^2, y(0)=0 , h=0.1

Sol. y=x-tanh(x)

 

I don't know well maple. 

I study Advanced Engineering Math and using maple, but i am stopped in this test.

I want to know how solve this problem.

please teach me~ 

IT IS EULER's method

Hi there. I'm Student

i want to know how solve this problem.

please teach me! 

y'=(y-x)^2, y(0)=0, h=0.1

sol.y=x-tanh(x)

how solve this problem for maple? 

please teach me~

First 9 10 11 12 13 14 15 Last Page 11 of 32