You can subscribe to this list here.
2014 
_{Jan}

_{Feb}
(232) 
_{Mar}
(323) 
_{Apr}
(383) 
_{May}
(359) 
_{Jun}
(435) 
_{Jul}
(252) 
_{Aug}
(172) 
_{Sep}
(265) 
_{Oct}
(263) 
_{Nov}
(350) 
_{Dec}
(359) 

2015 
_{Jan}
(267) 
_{Feb}
(220) 
_{Mar}
(311) 
_{Apr}
(269) 
_{May}
(388) 
_{Jun}
(403) 
_{Jul}
(172) 
_{Aug}
(340) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 



1
(3) 
2
(6) 
3
(32) 
4
(23) 
5
(16) 
6
(16) 
7
(17) 
8
(11) 
9
(9) 
10
(14) 
11
(8) 
12
(4) 
13
(3) 
14
(10) 
15
(4) 
16
(6) 
17
(7) 
18
(10) 
19
(7) 
20
(14) 
21
(12) 
22
(26) 
23
(31) 
24
(28) 
25
(23) 
26
(12) 
27
(12) 
28
(11) 
29
(4) 
30
(4) 



From: Leo Butler <l_butler@us...>  20140408 22:46:02

"Edwin Woollett" <woollett@...> writes: > I had the wrong syntax calling rkf45 in the example > code file I previously sent to the list, but > after correcting the syntax to: > > soln_lin2 : rkf45( dydt, y, 1, [t , 0, 1]), > > in the code file driven1c.mac, I get exactly the same > failure to cope (by rkf45) with the interpolating > function piece. >  > (%i16) load(driven1c); > fll(sL) = [1.0,1.0,51] > fll(snL) = [0.90291,1.053531,51] > noisy signal data > fll(tsnL) = [[0,0.90291],[1.0,1.053531],51] > slin(0.5) = 0.88955 > soln using rk() > fll(soln_lin) = [[0.0,1.0],[1.0,0.65303],101] > soln using rkf45() > expt: undefined: 0 to a negative exponent. > #0: rkf45(odes=t*y+(11.96189*t+0.90291)*charfun(t < 0.02)+charfun(0.68 <= t > and t < > 0.7)*(22.40386*t15.82754)+cha...,funcs=y,initial=1,interval=[t,0,1],options=[])(myrkf45.mac > line 186) Ted, the abovementioned line 186 should be h_optimal:min(max(0.84089641525371*(atol/trunc_error)^0.25,0.1),4)*h, Is that correct? I think the error is caused by trunc_error=0, so try replacing that line with h_optimal:min(max(0.84089641525371*(atol/max(1e30,trunc_error))^0.25,0.1),4)*h, and tell me if that fixes the problem (it did for me). Leo >  an error. To debug this try: debugmode(true); > >  > corrected code file driven1c.mac: >  > /* driven1c.mac : compare behavior of rk and rkf45 > with an interpolating function */ > > /* create noisy signal points (tL, snL) */ > > (signal(t) := cos(2*%pi*t), > tL : makelist(t,t,0,1,0.02), > sL : float(map('signal, tL)), > print(" fll(sL) = ",fll(sL)), > s1 : make_random_state(2014), > set_random_state(s1), > snL : jitter(sL, 0.2), > print(" fll(snL) = ",fll(snL)), > > /* create interpolating function slin(t) from > noisy signal points */ > > load("interpol.mac"), > tsnL : xyData(tL,snL), > print(" noisy signal data "), > print(" fll(tsnL) = ",fll(tsnL)), > define(slin(x), linearinterpol(tsnL)), > print(" slin(0.5) = ", slin(0.5)), > > /* use slin(t) interpolating function as > a driving term in ode, and integrate > o.d.e. with rk() */ > > print(" soln using rk() "), > dydt : t*y + slin(t), > soln_lin : rk(dydt,y,1,[t,0,1,0.01]), > print(" fll(soln_lin) = ",fll(soln_lin)), > > /* try to integrate same ode with rkf45 */ > > print(" soln using rkf45() "), > load("myrkf45.mac"), > soln_lin2 : rkf45(dydt,y,1,[t,0,1]), > print(" fll(soln_lin2) = ",fll(soln_lin2)))$ >  > > homemade utility functions used: > > fll(x) := [first(x),last(x),length(x)]$ > > jitter1(val,amount) := val + amount*(random(2.0)  1.0)$ > > /* add random noise to a list of numbers */ > > jitter(aaL, amount) := ( > if not listp(aaL) then return("first arg must be a list"), > map('lambda([xx],jitter1(xx,amount)),aaL))$ > > xyData(uuL,vvL) := (makelist([uuL[kk],vvL[kk]],kk,1,length(uuL)))$ >  > > Ted Woollett > > > > > > >  > Put Bad Developers to Shame > Dominate Development with Jenkins Continuous Integration > Continuously Automate Build, Test & Deployment > Start a new project now. Try Jenkins in the cloud. > http://p.sf.net/sfu/13600_Cloudbees  Leo Butler <l_butler@...> SDF Public Access UNIX System  http://sdf.lonestar.org 
From: Edwin Woollett <woollett@ch...>  20140408 20:36:00

I had the wrong syntax calling rkf45 in the example code file I previously sent to the list, but after correcting the syntax to: soln_lin2 : rkf45( dydt, y, 1, [t , 0, 1]), in the code file driven1c.mac, I get exactly the same failure to cope (by rkf45) with the interpolating function piece.  (%i16) load(driven1c); fll(sL) = [1.0,1.0,51] fll(snL) = [0.90291,1.053531,51] noisy signal data fll(tsnL) = [[0,0.90291],[1.0,1.053531],51] slin(0.5) = 0.88955 soln using rk() fll(soln_lin) = [[0.0,1.0],[1.0,0.65303],101] soln using rkf45() expt: undefined: 0 to a negative exponent. #0: rkf45(odes=t*y+(11.96189*t+0.90291)*charfun(t < 0.02)+charfun(0.68 <= t and t < 0.7)*(22.40386*t15.82754)+cha...,funcs=y,initial=1,interval=[t,0,1],options=[])(myrkf45.mac line 186)  an error. To debug this try: debugmode(true);  corrected code file driven1c.mac:  /* driven1c.mac : compare behavior of rk and rkf45 with an interpolating function */ /* create noisy signal points (tL, snL) */ (signal(t) := cos(2*%pi*t), tL : makelist(t,t,0,1,0.02), sL : float(map('signal, tL)), print(" fll(sL) = ",fll(sL)), s1 : make_random_state(2014), set_random_state(s1), snL : jitter(sL, 0.2), print(" fll(snL) = ",fll(snL)), /* create interpolating function slin(t) from noisy signal points */ load("interpol.mac"), tsnL : xyData(tL,snL), print(" noisy signal data "), print(" fll(tsnL) = ",fll(tsnL)), define(slin(x), linearinterpol(tsnL)), print(" slin(0.5) = ", slin(0.5)), /* use slin(t) interpolating function as a driving term in ode, and integrate o.d.e. with rk() */ print(" soln using rk() "), dydt : t*y + slin(t), soln_lin : rk(dydt,y,1,[t,0,1,0.01]), print(" fll(soln_lin) = ",fll(soln_lin)), /* try to integrate same ode with rkf45 */ print(" soln using rkf45() "), load("myrkf45.mac"), soln_lin2 : rkf45(dydt,y,1,[t,0,1]), print(" fll(soln_lin2) = ",fll(soln_lin2)))$  homemade utility functions used: fll(x) := [first(x),last(x),length(x)]$ jitter1(val,amount) := val + amount*(random(2.0)  1.0)$ /* add random noise to a list of numbers */ jitter(aaL, amount) := ( if not listp(aaL) then return("first arg must be a list"), map('lambda([xx],jitter1(xx,amount)),aaL))$ xyData(uuL,vvL) := (makelist([uuL[kk],vvL[kk]],kk,1,length(uuL)))$  Ted Woollett 
From: Edwin Woollett <woollett@ch...>  20140408 20:14:26

Here is an example of rkf45 failing when part of a derivative expression involves an interpolating function. The core rk() function, and my own homemade rk4(), have no problems with the use of such an interpolating function (to summarize noisy data, for example). This example uses the code file driven1c.mac (see below). This example also uses the "fixes" to rkf45 recently mentioned on this list. (%i15) load(driven1c); fll(sL) = [1.0,1.0,51] fll(snL) = [0.90291,1.053531,51] noisy signal data fll(tsnL) = [[0,0.90291],[1.0,1.053531],51] slin(0.5) = 0.88955 soln using rk() fll(soln_lin) = [[0.0,1.0],[1.0,0.65303],101] soln using rkf45() expt: undefined: 0 to a negative exponent. #0: rkf45(odes=t*y+(11.96189*t+0.90291)*charfun(t < 0.02)+charfun(0.68 <= t and t < 0.7)*(22.40386*t15.82754)+cha...,funcs=y,initial=1,interval=[t,0,1,0.01],options=[])(myrkf45.mac line 186)  an error. To debug this try: debugmode(true);  homemade utility functions used: fll(x) := [first(x),last(x),length(x)]$ jitter1(val,amount) := val + amount*(random(2.0)  1.0)$ /* add random noise to a list of numbers */ jitter(aaL, amount) := ( if not listp(aaL) then return("first arg must be a list"), map('lambda([xx],jitter1(xx,amount)),aaL))$ xyData(uuL,vvL) := (makelist([uuL[kk],vvL[kk]],kk,1,length(uuL)))$  driven1c.mac code file:  /* driven1c.mac : compare behavior of rk and rkf45 with an interpolating function */ /* create noisy signal points (tL, snL) */ (signal(t) := cos(2*%pi*t), tL : makelist(t,t,0,1,0.02), sL : float(map('signal, tL)), print(" fll(sL) = ",fll(sL)), s1 : make_random_state(2014), set_random_state(s1), snL : jitter(sL, 0.2), print(" fll(snL) = ",fll(snL)), /* create interpolating function slin(t) from noisy signal points */ load("interpol.mac"), tsnL : xyData(tL,snL), print(" noisy signal data "), print(" fll(tsnL) = ",fll(tsnL)), define(slin(x), linearinterpol(tsnL)), print(" slin(0.5) = ", slin(0.5)), /* use slin(t) interpolating function as a driving term in ode, and integrate o.d.e. with rk() */ print(" soln using rk() "), dydt : t*y + slin(t), soln_lin : rk(dydt,y,1,[t,0,1,0.01]), print(" fll(soln_lin) = ",fll(soln_lin)), /* try to integrate same ode with rkf45 */ print(" soln using rkf45() "), load("myrkf45.mac"), soln_lin2 : rkf45(dydt,y,1,[t,0,1,0.01]), print(" fll(soln_lin2) = ",fll(soln_lin2)))$  Ted Woollett 
From: Richard Fateman <fateman@be...>  20140408 19:49:36

On 4/8/2014 9:33 AM, Helmut Jarausch wrote: > On 04/08/2014 04:46:53 PM, Richard Fateman wrote: >> On 4/7/2014 11:35 PM, Helmut Jarausch wrote: >>> On 04/07/2014 11:49:22 PM, Richard Fateman wrote: >>>> This seems to be camouflage for simplification gone wrong. >>>> >>>> note that radcan(f) produces sin(x) * sqrt(sin(x)^2+cos(x)^2). >>>> >>>> trigsimp(%); produces sin(x). >>>> >>>> Therefore: >>>> >>>> 1. The problem can be resolved by a different choice of >>>> how much simplification do you want the integration program to >>>> attempt. >>>> >>>> 2. The integrand has TWO values, since sqrt() is +sqrt, and >>>> even after >>>> simplification, sqrt(1) still has TWO values, +1, 1. The >>>> integrand is >>>> ambiguous, >>>> at least arguably. >>>> >>> >>> Sorry, but that's mathematically incorrect. The square root is a >>> well defined >>> function that has only nonnegative values as long as its argument >>> is nonnegative real. >>> >>> The *equation* x^2z=0 has 2 solutions, +sqrt(z) und sqrt(z), but >>> that's a completely >>> different story. >>> >>> As Evgeniy points out, his integrand >>> >>> f:sqrt(sin(x)^4+sin(x)^2*cos(x)^2); >>> >>> is a welldefined, nonnegative, real function, the integral >>> of which has to be nonnegative according to an elementary >>> theorem in integration or measure theory. >>> >>> Helmut >> >> What can I say but that "that's your opinion". I think you have to >> take a course >> in complex variables to get a thorough grounding in notions like >> branch cuts >> (Sqrt has one at 0) and Riemann surfaces. But it doesn't have to do >> with >> integration or measure theory. It has to do with complex variables. > > I have been teaching that for decades and any book on analysis says in > unison > that a function maps each point of its domain onto a *unique* point of > its > range. > > If one goes from the complex plane to several points of the Riemannian > manifold > then back to the complex plane, that's *set valued mapping* but not a > function. > And I have never seen a definition of integration for setvalued > mappings. Are you agreeing that sqrt(x^2) is not a function? If it is a set valued mapping, it seems to me that there is a trivial extension of integration for finite sets. Which is the case here. For example.. integrate ({a,b,c},x) = {integrate(a,x), integrate(b,x), integrate(c,x)} in the case of algebraic functions, the problem of integration in finite terms might be more legitimately expressed as ... integrate( some_function_of(RootOf ....), x) and that presumably makes sense, in the language of differential algebra. > > >> Also, f one were to take your point of view, quadratic equations >> would have only >> one root, not two. > > Oh, come on you made such trivial error, see below! >> >> Let's see if I can derive it. >> ax^2+bx+c=0 the start. divide through by a, OK since a is >> nonzero. move c/a to rhs. >> >> >> x^2 +(b/a)x =c/a next, complete the square by adding (b/(2a)^2 to >> both sides, and factoring lhs: >> >> (x+b/(2a))^2 = c/a+b^2/(4a^2). A little algebra >> >> (x+b/(2a))^2 = (b^24ac)/(4a^2) . Starting to look familiar. >> >> >> >> For many choices of a,b,c constant, the righthand side is a >> positive value R, and it has, >> according to you, a single square root, a positive number. Call it S. >> >> Take sqrt of both sides. > > Since a = b implies a^2 = b^2 *but now vice versa* you cannot simply > take square roots > without loosing solutions (even the only one in some cases) Of course_I am not making this mistake because I believe that sqrt(E) has 2 values, unless E=0._ But if _you_ believe that sqrt(E) has one value if E>0, then this step is correct in your opinion. > > And for the rest: a function is a triple of a domain, a range and a > mapping rule. > If you change one of these you get a different function. All you are told in Maxima is "sqrt". You are not given a domain or range except implicitly which is "anything you can type into Maxima" and "whatever the last programmer to mess with this program decided to do". Incidentally, Maxima does not really have sqrt. It is just a display convention for ( )^(1/2). > >> >> Now if x+b/(2a) is positive , then >> x+b/(2a) = S . >> >> So a quadratic equation has one solution. >> >> Or if you don't believe that it is positive, then (x+b/2a) is >> positive. >> >> So a quadratic equation has one solution. >> >> If a quadratic equation has TWO solutions, then the sqrt must have 2 >> values. >> ................ >> >> Another argument: If you think that sqrt(f) is single valued, does >> your theory >> of the meaning of fractional exponents like 1/2 generalize to a >> useful theory >> that includes 1/3? Is 1^(1/8) equal to exp(i*pi/4) or 1 or ?? >> >> What does your theory of sqrt, generalized, tell us is the single >> correct value for (1)^(5/8) ? >> >> Now assuming that you concede that other exponents like 1/8 result in >> multiple values, >> what do you propose to do with sqrt? The only plausible explanation is >> that you have made a special case, and that your sqrt(R) is a special >> item that is different but >> related to R^q with q=1/2. Your sqrt means something different from >> R^q. Basically >> it has a component of magic that chooses a Riemann surface that >> allows it to flip >> from one to the other, depending on what someone is thinking, or from >> some >> (in general, false) indication based on the sign of R, should that be >> computable. >> >> There is a way of representing roots, e.g. >> >> RootOf(x^24=0,x) which would be "some arbitrary" root of x^24. >> If needed, we could list them as >> r1= RootOf(x^24,0,1) //// root 1 >> r2 =RootOf(x^24,0,2) //// root 2 >> >> We don't know if r1>0 or not but we DO know that r1+r2 = 0, and r1* >> r2= 4 and a bunch of >> other things too. All the correct facts we know are true if we >> switch r1 and r2 symmetrically. >> >> >> >> >> >> >> >> >> >> >> 
From: nijso beishuizen <nijso@ho...>  20140408 17:13:47

Hi, I would like to create a new variable b that inherits all properties from variable a (at least the ones shown by facts(a)), but b is not a, so a+b would not reduce to 2a. How can I do this? Best, Nijso 
From: Edwin Woollett <woollett@ch...>  20140408 17:07:36

On April 7, 2014, Leo Butler wrote: > I pushed the fixes to the error messages and float coercion, so this > will show up in the next release. >I also noticed that there is no documentation for rkf45 available in >Maxima, so I will fix that. >Finally, I noticed that rkf45 completes in about 1/3 the time of rk for >your code. I believe this may be due to rk's use of coercefloatfun.  thanks for updating the contributed code and doing some documentation. rkf45 is a valuable addition to Maxima's numerical toolkit. I wish someone with the appropriate skill set could add some numerical ode solvers related to the livermore solvers (lsoda, etc) which can handle stiff o.d.e.s. ted 
From: Evgeniy Maevskiy <emaevskiy@e...>  20140408 09:38:54

There are two cases: real and complex. We are talking about integration on real line, not in complex plane. Real and complex cases are always in confusion in Maxima. 08.04.2014 12:28, Andrey G. Grozin пишет: > On Tue, 8 Apr 2014, Helmut Jarausch wrote: >> Sorry, but that's mathematically incorrect. The square root is a well >> defined >> function that has only nonnegative values as long as its argument is >> nonnegative real. > Sorry, this is incorrect. sqrt maps the Riemann surface of sqrt onto the > complex plane. There are 2 different points on this Riemann surface > corresponding to, say, the complex number 1 (on 2 sheets of this surface). > The values of sqrt in these 2 points are +1 and 1. > > Andrey > >  > Put Bad Developers to Shame > Dominate Development with Jenkins Continuous Integration > Continuously Automate Build, Test & Deployment > Start a new project now. Try Jenkins in the cloud. > http://p.sf.net/sfu/13600_Cloudbees > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Andrey G. Grozin <A.G.G<rozin@in...>  20140408 09:33:54

On Tue, 8 Apr 2014, Andrey G. Grozin wrote: > sqrt maps the Riemann surface of sqrt onto the > complex plane. There are 2 different points on this Riemann surface > corresponding to, say, the complex number 1 (on 2 sheets of this surface). > The values of sqrt in these 2 points are +1 and 1. see any textbook on complex calculus or a nice video http://www.youtube.com/watch?v=mIOvmCyT4DQ 
From: Andrey G. Grozin <A.G.G<rozin@in...>  20140408 09:28:40

On Tue, 8 Apr 2014, Helmut Jarausch wrote: > Sorry, but that's mathematically incorrect. The square root is a well > defined > function that has only nonnegative values as long as its argument is > nonnegative real. Sorry, this is incorrect. sqrt maps the Riemann surface of sqrt onto the complex plane. There are 2 different points on this Riemann surface corresponding to, say, the complex number 1 (on 2 sheets of this surface). The values of sqrt in these 2 points are +1 and 1. Andrey 
From: Helmut Jarausch <jarausch@ig...>  20140408 06:35:37

On 04/07/2014 11:49:22 PM, Richard Fateman wrote: > This seems to be camouflage for simplification gone wrong. > > note that radcan(f) produces sin(x) * sqrt(sin(x)^2+cos(x)^2). > > trigsimp(%); produces sin(x). > > Therefore: > > 1. The problem can be resolved by a different choice of > how much simplification do you want the integration program to > attempt. > > 2. The integrand has TWO values, since sqrt() is +sqrt, and even > after > simplification, sqrt(1) still has TWO values, +1, 1. The integrand > is > ambiguous, > at least arguably. > Sorry, but that's mathematically incorrect. The square root is a well defined function that has only nonnegative values as long as its argument is nonnegative real. The *equation* x^2z=0 has 2 solutions, +sqrt(z) und sqrt(z), but that's a completely different story. As Evgeniy points out, his integrand f:sqrt(sin(x)^4+sin(x)^2*cos(x)^2); is a welldefined, nonnegative, real function, the integral of which has to be nonnegative according to an elementary theorem in integration or measure theory. Helmut 
From: Evgeniy Maevskiy <emaevskiy@e...>  20140408 04:56:34

Thank you! Indeed, we can see that integrate(abs(x)*f(x^2),x,0,1); changevar(%,tx^2,t,x); produces wrong result and (maybe because) solve(tx^2,x); produces [x=sqrt(t),x=sqrt(t)] So the first element is x=sqrt(t) 08.04.2014 0:49, Richard Fateman пишет: > This seems to be camouflage for simplification gone wrong. > > note that radcan(f) produces sin(x) * sqrt(sin(x)^2+cos(x)^2). > > trigsimp(%); produces sin(x). > > Therefore: > > 1. The problem can be resolved by a different choice of > how much simplification do you want the integration program to attempt. > > 2. The integrand has TWO values, since sqrt() is +sqrt, and even after > simplification, sqrt(1) still has TWO values, +1, 1. The integrand is > ambiguous, > at least arguably. > > 3. changevar needs to use solve to find a solution to the given > equation. If there > are several solutions, it presumably picks one, and in these cases the > choice > seems to affect the answer, still because of sqrt, I think. Or maybe > atan()? > > Any time Maxima responds to a simplification of an algebraic function > with abs(), > I assume it is wrong, and has succumbed to some enthusiastic but > mathematically > naive reduction of sqrt(z^2) to abs(z). > > RJF > > > > Note that On 4/7/2014 8:18 AM, Evgeniy Maevskiy wrote: >> We can compare this: >> >>  >> f:sqrt(sin(x)^4+sin(x)^2*cos(x)^2); >> 'integrate(f,x,0,%pi/2); >> changevar(%,xatan(t),t,x); >> changevar(%,zt^2,z,t); >> ev(%,integrate); >>  >> >> and this: >> >>  >> f:sqrt(sin(x)^4+sin(x)^2*cos(x)^2); >> 'integrate(f,x,0,%pi/2); >> changevar(%,xatan(t),t,x); >> ev(%,integrate); >>  >> >> Best regards, >> Evgeniy >> >> >> >> 07.04.2014 12:05, Jose Carlos Santos пишет: >>> Hi all, >>> >>> If I ask Maxima (5.30) to compute >>> >>> integrate(sqrt(sin(t)^4+sin(t)^2*cos(t)^2),t,0,%pi/2); >>> >>> then I get 1. This is wrong, of course, since it is the integral of a >>> nonnegative function (the correct answer is 1). Why does Maxima behave >>> like this? >>> >>> Best regards, >>> >>> Jose Carlos Santos >>> >>> >>>  >>> >>> Put Bad Developers to Shame >>> Dominate Development with Jenkins Continuous Integration >>> Continuously Automate Build, Test & Deployment >>> Start a new project now. Try Jenkins in the cloud. >>> http://p.sf.net/sfu/13600_Cloudbees_APR >>> _______________________________________________ >>> Maximadiscuss mailing list >>> Maximadiscuss@... >>> https://lists.sourceforge.net/lists/listinfo/maximadiscuss >>> >> >>  >> >> Put Bad Developers to Shame >> Dominate Development with Jenkins Continuous Integration >> Continuously Automate Build, Test & Deployment >> Start a new project now. Try Jenkins in the cloud. >> http://p.sf.net/sfu/13600_Cloudbees_APR >> _______________________________________________ >> Maximadiscuss mailing list >> Maximadiscuss@... >> https://lists.sourceforge.net/lists/listinfo/maximadiscuss > > 