439 Reputation

13 Badges

14 years, 160 days

MaplePrimes Activity

These are answers submitted by Jarekkk

Equilibrium for a given ordinary differential equation y'(t)=f(t,y) is a point for which f(t,y)=0. So you need to solve the right hand side of your equation.

i.e.: solve((800-y(t))*y(t)/(100+y(t))=0,y(t));

What do you mean?

Does this

res:=maximize(int(... # the whole maximize command of yours





I know about two possible ways.

1) Applying the theorem that the function is concave if its second derivative is negative (or non-positive).

2) You can also use the command ?Student[Calculus1][FunctionChart] with which you plot the function with ilustrated properties.

For your function, the 2) would look like this:

Student[Calculus1][FunctionChart]((800-t)*t/(100+t), t = -200 .. 200)

In school we learnt that the function is convex if its second derivative is positive (or non-negative) and concave if its second derivative is negative (non-positive). When I looked at the help (and the internet) I realised that convex function is also called concave up ...

According to this Maple command I also have a question. Why am I getting this graph for f(t)=1/t?

Student[Calculus1][FunctionChart](1/t, t = -200 .. 200)

This function is concave (or concave down) on (-infinity,0)...

I created a simple example, just to show how it can be done:

s := 100:
F := dsolve({seq(diff(x[i](t), t) = x[i](t), i = 1 .. 6), seq(x[i](0) = i, i = 1 .. 6)}, numeric, 'output' = Array([seq(0.1*i, i = 1 .. s)]));

Then F[2, 1] is a matrix of calculated points (for all variables). For each variable to fit the function to it you have to extract two corresponding columns (of that matrix).

You might find useful the output option of the dsolve command. Setting 'output'= piecewise could be what you're looking for.

I would create my own procedure for this. I don't know if there is anything "easier".


Edit: The procedure could look like this (I suppose that L is a list of 3x3 matrices):

diag_matrix := proc (L)
local M, i;
M := Vector(nops(L)):
M[1] := Matrix(2*nops(L)+1, L[1]);

for i from 2 to nops(L) do
    M[i] := LinearAlgebra[DiagonalMatrix]([Matrix(2*i-2), L[i], Matrix(2*(nops(L)-i))])
end do;

return add(M[i], i = 1 .. nops(L));
end proc:

Create the function with ?piecewise, Find derivative with ?diff and integrate with ?int.

You can try ?isolate (you will need to change the last assignment to equation).

On the other hand, those expressions are a little complicated for isolating y.

You can use parse command. For example:

Do you look for something like this?


eqn[1] := a*x+b*x^2+c*x^3 = 0:

eqn[2] := a1*x+b*x^3 = 0:

eqn[3] := a2*x^2+b2*x^3 = a*x^2:


eqs := seq(eqn[i], i = 1 .. 3);


for j to 3 do eq[j-1] := seq(coeff(lhs(i)-rhs(i), x^j) = 0, i in eqs) end do;

For example:


As I looked at the system I see there are probably several errors. Many equations repeat (g0=e2, g1=f2, h0=e3, ...) and for example e1 and f0 can not hold together.

@MaartenMees I don't know what "all the calculations" means, but I would get those 9 equations at first (you already have them) and then solve them with the solve command.

At first, I obtain the error both in Maple 15 and Maple 14.

Next, the solution depends on the value of l. And Maple doesn't know whether it's positive, negative, or what. So for example assume(l>0) can help.

4 5 6 7 Page 6 of 7