C_R

3577 Reputation

21 Badges

6 years, 96 days

MaplePrimes Activity


These are replies submitted by C_R

Have you forgotten to add an attachement?

@

Very interesting background.

I wonder to what extent such advanced integration methods will one day be available in Maple's standard libraries. Perhaps the need for more PDE functionality and/or performance will trigger this. Some users have asked for it.

Thank you!

 

@nm 

Or nothing at all, as here if the rhs is <>0

duffing:=m*diff(y(t),t,t) + b*diff(y(t),t) + c1*y(t) + c3*y(t)^3  =  F(t);
DETools[odeadvisor](duffing,y(t));
             /  2      \                                          
             | d       |     / d      \                    3      
duffing := m |---- y(t)| + b |--- y(t)| + c1 y(t) + c3 y(t)  = F(t
             |   2     |     \ dt     /                           
             \ dt      /                                          

  )


                             [NONE]

What irritates me more is the implicit solution, which seems to pass odetest only if the singular solution is taken into account

DETools[dalembertsol](ode):
solve(subs(x=0,y(0)=0,%[1]),{c__1});
sol3:=subs(%,%%[1]);
simplify(odetest(sol3,ode));
subs(sol,%);

Not sure how to interprete this. Is, in this case, this solution for this IVP a valid solution? Can provide dAlembert a solution at all or is it for that reason excluded from the list of methods? This would mean that certain pattern of methods are not possible.

@nm 
This pattern should also give a true. Shouldn't it?

`odeadv/y=_G(x,y')`

@nm

Maple agrees too

DEtools:-odeadvisor(ode,[dAlembert])
                          [_dAlembert]

However, it looks to me that the method [_dAlbembert] does nothing more than this call to DETools (to be confirmed)

DETools[dalembertsol](ode);
solve(subs(x=0,y(0)=0,%[1]),{c__1});
subs(%,%%[1]);
plots:-implicitplot(%)

which does not accept ICs but returns 2 solutions where one of them comes with an integration constant.

No IC are accepted here

DETools[dalembertsol](ode,ic);
Error, (in ODEtools/info) found wrong extra argument(s): y(0) = 0

A call of dsolve with the method [_dAlbembert] should probably do the same or return the implicit solution from above.

We could also ask, why Maple did not list the type dAlembert. Maybe it is done on purpose to suggest/advise most suitable methods.

@Carl Love 

Thank you. The links are helpful. What was not helpful in the context of this question was how I got introduced to the term homogeneous a long time ago.

Maple does not seem to classify the "other" homogeneous cases that Wikipedia mentions in the link above as such and uses different terms. I am referring here to

Otherwise, a differential equation is homogeneous if it is a homogeneous function of the unknown function and its derivatives.

@Carl Love

For completenes, my refined attempt fits now to homogeneous, Class A ode

simplify(isolate(ode,diff(y(x), x))):
lhs(%)=simplify(eval(rhs~(%), y(x)= x*v)): 
subs(v=y(x)%/x,%);

Could you provide a link to a nonlinear homogeneous definition? I could not find anything useful.

@nm

Thank you for confirming. I could also test it on a 2024.0 installation. The 2024.0 installation shows the output in 2D-Math and in 1D-Math on the first call.

@Ohmyus 

You do forward kinematics where the d[i] are inputs into the system and the platfrom orientation and position are the outputs.

As you have leanred form the other comments, there are no explicit solutions known. If you find one, you can publish it.

As Carl said, you have to solve the problem numerically.

@nm 

I do not have 2024.0 any more. It was uninstalled at the update.

Still no hangs with 30, 40 and 50.

With restart timing was always precise within one second.

500 does not termiante and could not be interputed. Termination of mserver was required.

To give you an idea: This is what my computer offers in terms of speed.

from

https://www.mapleprimes.com/posts/222505-Maple-Performance

                                  

As you describe your problem it sound as if you want to simulate a stewart platform (i.e. hexapod). If not, a drawing of the structure would be helpfull.

Do you want to do forward or inverse kinematics? Solving for your variables is forward, i.e. for a set of given distances d[i] you want to calculate the position and orientation of the platform.

Depending on how you setup the governing equations, your problem might be solvable (even symbolically).

Tip: solve without assumptions will assume that the variables are complex. Your problem is real valued and ranges of variables are limited. This can make a huge difference on the solution process.

@Joseph Poveromo 

Maybe this helps in the discussion. How did you get the suggestion to isolate y(x)?

NULL

infolevel[dsolve]:=5:
 expr:=int(diff(y(x),x)*f(x), x) =int(sqrt(y(x)) *f(x),x)^(-2/3);
dsolve(%);

int((diff(y(x), x))*f(x), x) = 1/(int(y(x)^(1/2)*f(x), x))^(2/3)

 

Methods for first order ODEs:

 

--- Trying classification methods ---

 

trying homogeneous types:

 

differential order: 1; looking for linear symmetries

 

trying exact

 

-> Calling odsolve with the ODE (2*G(x)^(1/2)*f(x)+Intat(f(_a)*(diff(G(x) x))/G(x)^(1/2) _a = x))/Intat(G(x)^(1/2)*f(_a) _a = x)^(8/3) G(x) explicit [quadrature separable linear Bernoulli homogeneous]

 

   *** Sublevel 2 ***

 

   Classification methods on request

 

   Methods to be used are: [quadrature, separable, linear, Bernoulli, homogeneous]

 

   ----------------------------

 

   * Tackling ODE using method: quadrature

 

   --- Trying classification methods ---

 

   ----------------------------

 

   * Tackling ODE using method: separable

 

   --- Trying classification methods ---

 

   ----------------------------

 

   * Tackling ODE using method: linear

 

   --- Trying classification methods ---

 

   ----------------------------

 

   * Tackling ODE using method: Bernoulli

 

   --- Trying classification methods ---

 

   ----------------------------

 

   * Tackling ODE using method: homogeneous

 

   --- Trying classification methods ---

 

   trying homogeneous types:

 

<- exact successful

 

(3/4)*y(x)^(4/3)+Intat((2/3)*y(x)^(5/6)/(Int(y(x)^(1/2)*f(_b), _b))^(5/3), _b = x)+c__1 = 0

(1)

NULL

DETools:-odeadvisor(expr)

[`y=_G(x,y')`]

(2)

NULL


 

Download integro.mw

@Preben Alsholm 

I experimented and found

(Not sure if zero means empty.)
If I switch back to magnitude. A black color corresponds to the label value 1 which does not match the zeros in the Matrix.

What did you enter in odeadvisor?

A first step to find out what (edit) Maple dsolve is doing is entering 

infolevel[dsolve]:=5
First 26 27 28 29 30 31 32 Last Page 28 of 70