bogo

55 Reputation

5 Badges

10 years, 134 days

MaplePrimes Activity


These are questions asked by bogo

I am solving a system of ODEs with dsolve(ODES, numeric, method = lsode[adamsfull]) and I noticed that some of the solutions are really small numbers, of the order of 10^-{10} and smaller. Certainly for all intents and purposes I will treat those as zero, but my question is: what flag do I set in dsolve to force Maple stop seeking for a solution when it is so close to zero and set it to 0.0? It seems like a great waste of computational time to try and find the significant digits of the order one number in front of 10^{-10} for any particular solution, at least in my case. So, is there a way to add some option in dsolve such that maple sets that to zero before trying to fully calculate it fully (i.e. all the significant digits) ?? I have looked at abserr and relerr but that does not do the trick. 

 

IF the question was asked before, forgive me. I have tryed to find an answer within the search here and on the maple help page but was unsuccessful. 

I have to solve a numerical problem and I was wondering how to make maple treat very small numbers as zero. Say I do not care about anything less than 10^-5, so maple should treat all such numbers as zero. How to set this behaviour for the entire session? Thanks!

 

Hi!

 

I am trying to solve a large nxl system of coupled differential equations. Maple seems to have trouble even for small n's so I wanted to know if anyone has any suggestions. Take the case of the following system of ODEs for my unknown functions f[0,0](x) and f[1,0](x). 

 

ODEs:= {diff(f[0, 0](x), x)+2.*f[0, 0](x)/x^5+.5000000000*f[0, 0](x)/x = -15.58845727*sin(.5773502693*x)/x^2+140.2961154*sin(.5773502693*x)/x^4-81.*cos(.5773502693*x)/x^3, diff(f[1, 0](x), x)+6.*f[1, 0](x)/x^5+1.500000000*f[1, 0](x)/x-1.*f[0, 0](x)/x = -15.58845727*sin(.5773502693*x)/x^2+25.98076212*sin(.5773502693*x)*(1/x^4)^(1/4)*exp(1/x^4)*GAMMA(.7500000000, 1/x^4)/x^2+140.2961154*sin(.5773502693*x)/x^4-233.8268591*sin(.5773502693*x)*(1/x^4)^(1/4)*exp(1/x^4)*GAMMA(.7500000000, 1/x^4)/x^4-81.*cos(.5773502693*x)/x^3+135.*cos(.5773502693*x)*(1/x^4)^(1/4)*exp(1/x^4)*GAMMA(.7500000000, 1/x^4)/x^3-20.78460970*sin(.5773502693*x)/x^6+6.000000004*cos(.5773502693*x)/x^5+62.35382908*sin(.5773502693*x)/x^8-36.00000002*cos(.5773502693*x)/x^7, f[0, 0](.1) = 1.503497680, f[1, 0](.1) = -.5011660086}

 

 

Following Preben Alsholm's suggestion from my previous thread I am using lsode[adamsfull], since no other method i have tried worked for this problem. I am currently using:

 

Sollsodefull:=dsolve({ODEs}, numeric, method = lsode[adamsfull])

 

and it seems to work. I am wondering if there is a way to optimize this, as I will be extending my problem to n and l much larger than order unity numbers, therefore my system will contain about 10^4-10^5 equations. Solving this symple system of 2 equations takes a bit less than a second, but still it takes some time for the processor on my MBP. I am affraid it will be a nightmare for the full problem. Whats the most optimal dsolve option for this kind of problem? Any ideas?

 

I have also attempted dverk78, rkf45,rosenbrock, lsode(without the adamsfull option), and all failed for this particular system. Errors were:

1. For rkf45: Error, (in f00) cannot evaluate the solution past the initial point, problem may be complex, initially singular or improperly set up

2. For dverk78: Error, (in Soldverk78) cannot evaluate the solution past .1, step size < hmin, problem may be singular or error tolerance may be too small

3. For rosenbrock: Error, (in dsolve/numeric/SC/firststep) unable to evaluate the partial derivatives of f(x,y) for stiff solution

4. For lsode without [adamsfull]: Error, (in Sollsode) an excessive amount of work (greater than mxstep) was done

5. For default method with stiff=true and inplicit=true options: Error, (in dsolve/numeric/SC/firststep) unable to evaluate the partial derivatives of f(x,y) for stiff solution

Hi! 

 

I have been trying to solve the following system of equations:

 

ODEs:=diff(f[0, 0](x), x)+2.*f[0, 0](x)/x^5+.5000000000*f[0, 0](x)/x+0.1500000000e-1*f[0, 1](x)/sqrt(x) = -15.58845727*sin(.5773502693*x)/x^2+140.2961154*sin(.5773502693*x)/x^4-81.*cos(.5773502693*x)/x^3, diff(f[0, 1](x), x)+2.*f[0, 1](x)/x^5+.5000000000*f[0, 1](x)/x-0.6666666667e-2*f[0, 0](x)/sqrt(x) = -1039.230485*sin(.5773502693*x)/x^(5/2)+600.0000000*cos(.5773502693*x)/x^(3/2)-346.4101616*sin(.5773502693*x)/x^(9/2)+2078.460970*sin(.5773502693*x)/x^(13/2)-1200.000000*cos(.5773502693*x)/x^(11/2), f[0, 0](.1) = 1.503498543, f[0, 1](.1) = -1.053038610

 

Using dsolve I cant get it to work. I have tried both dverk78 and lsode methods, with default options. For example:

 

Sollsode := dsolve({ODEs}, numeric, method = lsode) 

 

Gives me the follwing error, if I try to estimate the solution anywhere past the initial point of 0.1: Error, (in Sollsode) an excessive amount of work (greater than mxstep) was done

I have also attempted to solve it with dverk78, thinking perhaps the improved accuracy of the method will help.

Soldverk := dsolve({ODEs}, numeric, method = dverk78) 

 

However I will get the following error message then: Error, (in Soldverk) cannot evaluate the solution past .10000000, step size < hmin, problem may be singular or error tolerance may be too small

 

 

Any ideas on how to proceed? Thanks so much!

I am trying to simplify sums of a few LaguerreL polinomials of different n using the identities in the function advisor such as recurrsion relations. How does one go about in using the FunctionAdvisor identities when trying to simplify expressions containing orthogonal polynomials? 

 

 

1 2 3 Page 2 of 3