Carl Love

Carl Love

27626 Reputation

25 Badges

12 years, 102 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

In addition to Sergio's excellent Answer, I wonder if there is any example where pdsolve will accept a boundary condition (BC) expressed in terms of one of the highest-order derivatives appearing in the PDE. For example, in this case, we have a BC expressed in terms of the first derivative with respect to (wrt) z, which is the highest order derivative wrt z appearing in the PDE. I can't find any example of pdsolve accepting such a BC, nor a clear statement that they are not allowed. Of course, if that is the problem, pdsolve should return an error message. But, also, it is clear in this case that there is no solution which leaves f arbitrary.

Do you need to use indexed variables? If not, change Pop[p] to Pop(p), N[p] to N(p), etc. I don't think that that's a total solution to your problem, but it will help. It is possible in Maple to take a derivative with respect to a function.

Is there any good reason for Maple to call X:-ModuleLoad() when the X is the target of an assignment statement? I realize that it might be difficult for the interpreter to check for something like that. But doing the ModuleLoad seems like wasted effort since the module immediately becomes inaccessible.

@Ronan If you enter into Maple evala(Normal(A-B)) and Maple returns 0, that is a proof that A=B. I was saying that the result returned by identify was a guess. Results returned by evala(Normal(...)) are guaranteed, as are those returned by most Maple commands.

@Ronan If you enter into Maple evala(Normal(A-B)) and Maple returns 0, that is a proof that A=B. I was saying that the result returned by identify was a guess. Results returned by evala(Normal(...)) are guaranteed, as are those returned by most Maple commands.

So, do you want two rows, the first being h and the second being AA? What if it doesn't fit the width of your screen?

Please give an example of such an equation.

Also, I don't understand the phrase "I want theis strick expressions." I know there must be a typo in that, but I can't figure out what it is.

@aa13 Post your actual code please. Not abbreviations with ....  The error message "; unexpected" usually just means that you failed to close parentheses or square brackets.

@aa13 Post your actual code please. Not abbreviations with ....  The error message "; unexpected" usually just means that you failed to close parentheses or square brackets.

@dongtian@jlu.edu.cn A finite field of integers? Is the modulus less than 2^64?

Roughly what size is A? Is A dense upper triangular? Roughly how big is n? Is everything in hardware floating point (a.k.a. "double precision")?

I can't duplicate your results. I downloaded your worksheet and ran it in M17-64 Standard Windows 8 and both derivatives worked as expected. I resave it an attached it to this. See if it works for you now.



restart

X := 4*I__co

4*I__co

diff(I__co, I__co)

1

Y := 4*J[co]

4*J[co]

diff(Y, J[co])

4

NULL



Download derivative.mw

@mehdi_mech

The solution you got with dverk78 and relerr= 1 is not very meaningful. A relerr of 10^(-n) means about n digits of accuracy, so relerr= 1 is 0 digits of accuracy, which is no accuracy at all. Recall the definitions of absolute error and relative error:

absolute error = |true value - computed value|

relative error = absolute error / |true value|

I'd be very wary of ever setting relerr larger than 1e-4.

For the rosenbrock solution (stiff= true), you need to set maxfun higher than its default, or set it to 0, which means infinity. This may make the solution slow.

When using rkf45, ck45, or rosenbrock you may specify a different abserr for each of your 18 output variables.

@mehdi_mech Is your system still an initial value problem (IVP)? That is, does each equation contain at least one derivative? Then you should explore all of the alternative methods available in dsolve. From your previous posts, I think you've tried the default rkf45 and rosenbrock. But there's also two gear methods, eight lsode methods, and dverk78.

You should also try increasing the value of abserr (maybe you should try that first). The defaut value of 10^(-7) can take a very long time if the scale of the problem is >> 1. (For example, if a dependent variable is on the order of 10^6, then abserr= 1 might be appropriate.) See ?dsolve,numeric,IVP . Follow the links from the first paragraph of "Discussion" to the various methods. Read very carefully the section about abserr beginning in the third paragraph of "Discussion". If your dependent variables have substantially different scales from each other, then you may need to use the "list form" of abserr. Also read ?dsolve,numeric,Error_Control .

If all of the above fails, then I think that it is very unlikely that you'll be able to achieve anything with an ad hoc (self-written) method.

I don't understand how you got the 5.6.

First 643 644 645 646 647 648 649 Last Page 645 of 704