A2 I'm trying to get a handle on Mathematica's XML capabilities. I'm finding a few things to be a bit confusing. One of these is where the http://www.wolfram.com/XML/DTD/2001/NBMLwMathML.dtd really is. Another point of confusion is how exactly the rendering in the browser is expected to take place. If needs be, I can spin up my own CSS. Does Mathematica provide CSS for MathML or NBML? I've character mentioned entity references before, but I still haven't found an answer. What I've found here seems inconsistent with what Mathematica chose for the character entity reference for an imaginary number: http://www.bitjungle.com/~isoent/ This is what Mathematica produced for a complex number:

cpx = 1066 + 42 ;

If I understand the http://www.bitjungle.com/~isoent/ent.xml, the imaginary number symbol should be ࠿ which is a black letter capital 'I'. That doesn't seem correct to me. I'm currently stumbling around in here looking for a possible clue as to what I should expect: http://www.physiome.org.nz/Docs/web-tech/specs/mathML20/chapter3.html Has anybody worked with this? STH . Reply-To: Lester Ingber ==== If you have very strong credentials for the position described below, Lester Ingber Director R&D DUNN Capital Management Stuart FL Some recent press on DUNN can be seen on http://www.businessweek.com/magazine/content/02_39/b3801113.htm http://www.businessweek.com/magazine/content/02_39/b3801114.htm Financial Engineer A disciplined, quantitative, analytic individual proficient in prototyping and coding (such as C/C++, Maple/Mathematica, or Visual Basic, etc.) is sought for financial engineering/risk:reward optimization research position with established Florida hedge fund (over two decades in the business and $1 billion in assets under management). A PhD in a mathematical science, such as physics, statistics, math, or computer-science, is preferred. Hands-on experience in the financial industry is required. Emphasis is on applying state-of-the-art methods to financial time-series of various frequencies. Ability to work with a team to transform ideas/models into robust, intelligible code is key. Salary: commensurate with experience, with bonuses tied to the individual's and the firm's performance. Status of Selection Process All applicants will be reviewed, and a long list will be generated for phone interviews. Other applicants will not be contacted further. Information on the status of this process will be available in http://www.ingber.com/open_positions.html face-to-face interviews. During the visit for the physical interview a small coding exam will be given. Start date for this position may range anywhere from immediately to six months thereafter, depending on both the candidate's and the firm's needs. -- Prof. Lester Ingber ingber@ingber.com ingber@alumni.caltech.edu www.ingber.com www.alumni.caltech.edu/~ingber ==== Sorry, my message was nonsense. The reason why it appeared to give the answer 1 is that I forgot to evaluate z1 an z2: In[7]:= z1 = a1 + b1*I; In[8]:= z2 = a2 + b2*I; In[9]:= ComplexExpand[Abs[(z1 - z2)/(z1 - Conjugate[z2])], TargetFunctions -> {Im, Re}] Out[9]= Sqrt[(a1 - a2)^2 + (b1 - b2)^2]/ Sqrt[(a1 - a2)^2 + (b1 + b2)^2] The answer is clearly not unless b2==0. What exactly did you have in mind? > To start with, what you are saying is simply not true. A simple > example: In[1]:= > Abs[(z1 - z2)/(1 - z1*Conjugate[z2])] /. > {z1 -> 1 + I, z2 -> 1 - I} Out[1]= > 2/Sqrt[5] Presumably you meant Abs[(z1 - z2)/(z1 - Conjugate[z2]) in which case: In[1]:= > ComplexExpand[Abs[(z1-z2)/(z1- > Conjugate[z2])],TargetFunctions->{Im,Re}] Out[1]= > 1 Andrzej Kozlowski > Yokohama, Japan > http://www.mimuw.edu.pl/~akoz/ > http://platon.c.u-tokyo.ac.jp/andrzej/ > I want to perform this calculation: > In[1]:=z1 = a1 + b1 I > Out[1]=a1 + [ImaginaryI] b1 > In[3]:=z2 = a2 + b2 I > Out[3]=a2 + [ImaginaryI] b2 > In[19]:=Abs[(z1 - z2)/(1 - z1 Conjugate[z2])] > This should output 1! But it doesn't work... > Also, Abs[a1+b1 I] doesn't get the right result. > Any ideeas? > CeZaR > > Andrzej Kozlowski Yokohama, Japan http://www.mimuw.edu.pl/~akoz/ http://platon.c.u-tokyo.ac.jp/andrzej/ ==== Dear Listers, I find myself defining functions in terms of differentiation. For example, f[x_,t_]:=Sin[x*t] dfx[x_,t]:=D[Sin[y,t],y]/.y->x This works well, but it seems to me that there should be a better way to do this. That is, there should be a better way to define a 'derivative' of a previous function without going through the replacement contortions. I can't find the answer in the archive. Can someone tell me the most straightforward way to do this? Will it work to define a gradient vector or Jacobian matrix? A Hessian matrix? -- Jason Miller, Ph.D. Division of Mathematics and Computer Science Truman State University 100 East Normal St. Kirksville, MO 63501 http://vh216801.truman.edu 660.785.7430 ==== Jason, We have dfx[x_,t_]= D[f[x,t],x] t Cos[t x] One advantage of using = rather than := is that it differentiates once, when the definition is stored, Definition[dfx] t Cos[t x] With := we get Clear[dfx] dfx[x_,t_]:= D[f[x,t],x] Definition[dfx] dfx[x_, t_] := D[f[x, t], x] So the differentiation is done each time that the function dfx is evaluated. -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 > Dear Listers, I find myself defining functions in terms of differentiation. For example, f[x_,t_]:=Sin[x*t] > dfx[x_,t]:=D[Sin[y,t],y]/.y->x This works well, but it seems to me that there should be a better way > to do this. That is, there should be a better way to define a > 'derivative' of a previous function without going through the > replacement contortions. I can't find the answer in the archive. > Can someone tell me the most straightforward way to do this? Will it > work to define a gradient vector or Jacobian matrix? A Hessian > matrix? -- > Jason Miller, Ph.D. > Division of Mathematics and Computer Science > Truman State University > 100 East Normal St. > Kirksville, MO 63501 > http://vh216801.truman.edu > 660.785.7430 > Reply-To: kuska@informatik.uni-leipzig.de ==== f[x_, t_] := Sin[x*t] dfx[x_, t_] := Module[{y, df}, df = D[f[y, t], y]; Block[{y = x}, df ] ] Jens Dear Listers, I find myself defining functions in terms of differentiation. For example, f[x_,t_]:=Sin[x*t] > dfx[x_,t]:=D[Sin[y,t],y]/.y->x This works well, but it seems to me that there should be a better way > to do this. That is, there should be a better way to define a > 'derivative' of a previous function without going through the > replacement contortions. I can't find the answer in the archive. > Can someone tell me the most straightforward way to do this? Will it > work to define a gradient vector or Jacobian matrix? A Hessian > matrix? -- > Jason Miller, Ph.D. > Division of Mathematics and Computer Science > Truman State University > 100 East Normal St. > Kirksville, MO 63501 > http://vh216801.truman.edu > 660.785.7430 ==== I was trying to write a function, when given a list, say, {a,b,c,d}, the output is a op b op c op d, where op is (in LaTeX) bigotimes, or esc c * esc ([CircleTimes]) in Mathematica. f[{x_}]:=x; f[{x_, y_, z___}]:=f[Join[{x[CircleTimes]y},{z}]]; However, the output was not exactly what I expected, it looked like: ((a op b) op c) op d It seems when doing the Join operation, a pair of parenthesis was added. Can someone let me know how I can get rid of these parenthesis? JT _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com ==== > I was trying to write a function, when given a list, say, {a,b,c,d}, the > output is a op b op c op d, where op is (in LaTeX) bigotimes, or esc c * > esc ([CircleTimes]) in Mathematica. f[{x_}]:=x; > f[{x_, y_, z___}]:=f[Join[{x[CircleTimes]y},{z}]]; However, the output was not exactly what I expected, it looked like: ((a op b) op c) op d It seems when doing the Join operation, a pair of parenthesis was added. Can someone let me know how I can get rid of these parenthesis? > JT > _________________________________________________________________ > Chat with friends online, try MSN Messenger: http://messenger.msn.com You can be very effective with a simple trick f[MyList_]:=Drop[Flatten[Transpose[{MyList,Table[op,Length[MyList]]}]],-1 ] then you can apply on it a conversion to string then save it to a file to be processed by TeX/LateX ==== JJJ, Try: f[{x_}]:=x; f[{x_,y__}]:=x[CircleTimes]y Test f[{a,b,c,d}] a[CircleTimes]b[CircleTimes]c[CircleTimes]d -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 > I was trying to write a function, when given a list, say, {a,b,c,d}, the > output is a op b op c op d, where op is (in LaTeX) bigotimes, or esc c * > esc ([CircleTimes]) in Mathematica. f[{x_}]:=x; > f[{x_, y_, z___}]:=f[Join[{x[CircleTimes]y},{z}]]; However, the output was not exactly what I expected, it looked like: ((a op b) op c) op d It seems when doing the Join operation, a pair of parenthesis was added. Can someone let me know how I can get rid of these parenthesis? > JT > _________________________________________________________________ > Chat with friends online, try MSN Messenger: http://messenger.msn.com Reply-To: kuska@informatik.uni-leipzig.de ==== SetAttributes[CircleTimes, Flat] f[{x_}] := x; f[{x_, y_, z___}] := f[Join[{x[CircleTimes]y}, {z}]]; Jens I was trying to write a function, when given a list, say, {a,b,c,d}, the > output is a op b op c op d, where op is (in LaTeX) bigotimes, or esc c * > esc ([CircleTimes]) in Mathematica. f[{x_}]:=x; > f[{x_, y_, z___}]:=f[Join[{x[CircleTimes]y},{z}]]; However, the output was not exactly what I expected, it looked like: ((a op b) op c) op d It seems when doing the Join operation, a pair of parenthesis was added. Can someone let me know how I can get rid of these parenthesis? > JT _________________________________________________________________ > Chat with friends online, try MSN Messenger: http://messenger.msn.com ==== the least of which was a power failure. For some strange reason Mathematica stopped producing the pretty html+MathML it had been. I started trouble shooting, and blew away what I had pointed to. I violated Tom Jackson's (IBM & UMUC) first rule of holes: when you're in one, stop digging. Here's the parent directory. http://public.globalsymmetry.com/proprietary/com/wri/notebooks/ As you can see (If I haven't fixed it by the time you look again,) Mathematica is outputting the conversion command, rather than the actual MathML I really don't know what happened. I removed the init.m and deleted the cache, and it still refuses to work correctly. It's kind of frustrating. There are a lot of powerful XML features in Mathematica, but they are not easy to use. STH > cannot access... > thanks, > Steven Taracevicz > PO Box 1752 > Santa Monica, CA 90406-1752 310.396.4001 > 310.388.3265 fax ==== > I'm attempting to identify the essential aspects of Mathematica. I believe > the > place to start is with the 'functional operations'. I'm seeking the > 'basis' of Mathematica. Kind of the orthonormal subset of functionality > which can be used to derive all the other. I'm also trying to be > pragmatic. I'm not trying to reinvent Mathematica, I'm just trying to > understand > the invention that already exists... I apologize in advance for this pessimistic response, but here goes: I have attempted something similar on two occasions, but with very specific audiences in mind. Even so, my efforts were little better than useless. (I would be willing to send you my most recent attempt, but as I said, it didn't work well.) I doubt that you can find agreement among the sea of users of Mathematica as to what is essential or basic or an orthonormal subset. The kernel is well described in the Mathematica book (for those of us who are careful readers or are refreshing memories) and in other books (for the rest of us). Would it not be a better use of your time to refer to selected passages in existing books? Documentation of the front end is uneven, with vast uncharted areas (I'm not even sure when it's round or flat!). Original writing about the front end might be more fruitful. Tom Burton ==== The way I learned XML, XML is for content, and CSS is for display. It seems that MathML violates that separation between style and content. There is little chance that I'm the first one to mention this. Is there a history of discussion on this topic somewhere? I don't want to get too far into MathML on this list, but, since I'm skinning my knuckles trying to learn to work with MathML and Mathematica, I figure a bit of discussion on this topic in this context is in order. STH ==== How can I plot functions like: (x-2)^2 + 2(y-3)^2 = 6 and x^3y + y^3 = 9 using Mathematica? David, x /. Solve[x^3 y + y^3 == 9, x]; g=Plot[Sign[(9 - y^3)/y]* Abs[(9 - y^3)/y]^(1/3) , {y, -7, 7} , AspectRatio -> Automatic]; Show[g /. {x_?NumberQ, y_?NumberQ} -> {y, x}, Epilog -> {RGBColor[1,0,0],Line[{{-(3^(7/9)/2^(2/9)), -5}, {-(3^(7/9)/2^(2/9)), 5}}]}]; ==== Is there an SGML catalog for the WRI DTDs on the CD? I'm not sure if I should expect psgml with xemacs to handle namespaces correctly. Currently, I'm having problems using the xml generated by Mathematica with psgml. I'm not sure exactly how to set up an sgml catalog to support these. I really don't want to try to reinvent the wheel, if there is already one available. I'm thouroughly preplexed by the overall behavior of the XML support. Things which were working have now stopped working, or have significantly changed their behavior. This is a very exciting area, but it seems very difficult to get started. I believe the dtd to include in a catalog is this: /opt/Wolfram/Mathematica/4.2/SystemFiles/IncludeFiles/XML/xhtml-math11-f.dtd I'm just not sure what the public identifier should be. STH -- Hatton's Law: There is only One inviolable Law. ==== Yes, there seems to be a lot of people who have a visceral hatred for Microsoft and Windows. They are even willing to shed blood to avoid Windows. But why? Windows works and you don't have to become a systems programmer. Furthermore, I think that Steven Wolfram uses some version of Windows. So guess which system Mathematica will be best tuned up for? I have no problems with Mathematica and Windows on my single computer. There may be reasons for using a non-Microsoft operating system. But if you are going to do it, make certain that they are good reasons. David Park djmp@earthlink.net http://home.earthlink.net/~djmp/ ==== > Yes, there seems to be a lot of people who have a visceral hatred for > Microsoft and Windows. They are even willing to shed blood to avoid > Windows. But why? Windows works and you don't have to become a systems > programmer. Furthermore, I think that Steven Wolfram uses some version of Windows. So > guess which system Mathematica will be best tuned up for? I have no problems with Mathematica and Windows on my single computer. > There may be reasons for using a non-Microsoft operating system. But if > you are going to do it, make certain that they are good reasons. that of Windows XP by orders of magnitude. I recall when I first started been using Windows NT since October of 1992. (Yes, I know it hadn't been paper on the architecture of NT. In 1997 I was well on my way to being an MCSE. no stinkin' GUI' to 'have a look at the KDE project'. I took the latter route. The KDE has gone from a simple graphical desktop with a few more features than the CDE, (and a lot more glitches) to being the best desktop available. It's growth seems to be exponential. Windows seems, at best, to be linear. All of these are usability issues. There is another reason I don't like using Microsoft products. I've also been using Mozilla since 1995. (Yes, it has always been called Mozilla.) I was one of the original beta testers for the Netscape line of internet servers. When I saw what Netscape Communications were aiming for, Windows quickly lost its luster. Netscape products were designed from the ground up with portability in mind. They were striving for uniform functionality across all platforms. I also saw what Microsoft did to undermine Netscape's R & D resources. Microsoft would condescend to having not competition in their market. Where I come from, people don't put up with that. Where do I come from? I was born in Illinois. I'm obviously not of the opinion that closed source is unacceptable. I wouldn't be using Mathematica if I were. I suspect one day Mathematica will face a real open source challeng. Her name is Charolette. She is the mother of Mozilla. That will probably be years from now. WRI need to be prepared to adjust to that eventuality when it comes. > David Park > djmp@earthlink.net > http://home.earthlink.net/~djmp/ STH . ==== >In: DSolve[y*D[u[x, y],x] == x*D[u[x, y],y], u[x,y], {x, y}] > >Out: {{u[x, y] -> C[1][(1/2)*(x^2 + y^2)]}} > >Square brackets are used as grouping symbols in the result!?? :^O > >Somebody say it isn't so. > It isn't so The square bracket is not delineating a factor it is enclosing the argument to an arbitrary function named C[1]. While the function is dependent on both x and y the dependence only occurs in the combination (x^2+y^2). Bob Hanlon Reply-To: Mark Coleman ==== Greetings, I hope this inquiry is not off-topic for the list. I was wondering if anyone knew of Mathematica-based education resources (either for students or teachers) that would be suitable for teaching *elementary school* students (kindergartden - 5th grade) some basic fundamentals of mathematics, e.g., simple algebra, geometry, numbers,etc. I know there is a solid body of work directed towards high school and college students, but I am not sure of resources for younger students. Mark ==== > f[{x_}]:=x; > f[{x_, y_, z___}]:=f[Join[{x[CircleTimes]y},{z}]]; However, the output was not exactly what I expected, it looked like: ((a op b) op c) op d It seems when doing the Join operation, a pair of parenthesis was added. Can someone let me know how I can get rid of these parenthesis? SetAttributes[CircleTimes,Flat] f[{a,b,c,d}] a[CircleTimes]b[CircleTimes]c[CircleTimes]d Tom Burton ==== The Illinois Institute of Technology's Stuart Graduate School of Business in collaboration with Wolfram Research, Inc. is offering a seminar series on applications of the Mathematica software system in mathematical and computational finance. The weekly seminars will begin Friday, October 25, 2002, and will be held at the Stuart Graduate School of Business in Chicago. The speakers will illustrate the built-in functionality of Mathematica as well as the extensive Mathematica applications available from both Wolfram Research and independent developers. They will also give detailed synopses of applications that solve a wide range of financial problems. Advance registration is required. You can register by writing to seminar@wolfram.com. For more information, visit the seminar website at: http://www.wolfram.com/services/seminars/chicago2002/ ==== Allan, I would like to add something to this , something which duzznt deal with the question directly but with the answer...since I've seen it many times on the mathgroup forum, I feel i'd like to make a philosophical comment here...when I look at the reply and the solution , which might be perfectly good, but it makes me wonder...of what value is it to a Newbie????......quite often I seen questions posted Who can do this or that the fastest?....How about who can come up with a solution that is the easiest to comprehend?....Allan, I realize that you are an advanced user, etc..and that you think along these lines...but for me, and perhaps many others, I cant think along these lines even though I have read mathgroup for many years now...with that said, naturally i'm quite thankful to the 'gurus' who provide answers.... jerry blimbaum NSWC panama city, fl -----Original Message----- To get the function for the norm of the derivative we can use norm = Evaluate/@(Simplify/@(Sqrt[#.#]&/@(f'))) 2*Sqrt[2] & We map the usual functions for calclulating and simplifying the norm inside Function[.] (which is the full form of (.)& and then map the function Evaluation to make the result evaluate -- this is needed since Function has the attribute HoldAll. Please note that the parentheses are essential. -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 f[t_] = {t + Sqrt[3] Sin[t], 2 Cos[t], t Sqrt[3] - Sin[t]} So It's basically a vector whose coordinates are determined based on the > values you pass in. Then I took the derivative by just typing f', which outputs {1 + Sqrt[3] Cos[#1], -2 Sin[#1], Sqrt[3] - Cos[#1]}& > What I'd like to do is have Mathematica calculate the norm of this as it > would any vector, so that I can play with the norm function. As it turns > out, the norm in this case is identical to Sqrt[8], so it would be nice if > Mathematica could figure that out. Is it possible to do this? > ==== Dear Netters, I am also looking for Automated formal vector analysis. I am currently doing it with Mathematica and its package VectorAnalysis but it does not allow DIRECT algebra on tensors and vectors (or else I have not found how to do it) Can anyone else help ? Nicolas Fressengeas -- ________________________________________________________ Dr. Nicolas Fressengeas - - - http://www.ese-metz.fr/~fresseng Sup.8elec / Laboratoire Mat.8eriaux Optiques, Photonique et Syst.8fmes 2 rue E.Belin, 57070 METZ Cedex Plan d'acc.8fs: http://www.iti.fr/PlanPerso/23704/1 When everything else fails, read the instructions... Alexey Skoblikov a .8ecrit dans le message > Is there any tool for dealing with DIRECT tensor algebra, i.e. when tensor > is not a matrix of components, but considered to be the invariant object? ==== funcList = {Exp[x], Sin[y], z^3}; varList = {x, y, z}; MapThread[Plot[#1, {#2, -5, 5}] &, {funcList, varList}]; Inner[Plot[#1, {#2, -5, 5}] &, funcList, varList]; Bob Hanlon >how can I solve the following problem: The task is to successively plot > >the functions given in FuncList with the accociated variable >FuncList = {Exp[x], Sin[y], z^3}; > >VarList = {x, y, z}; > >Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] ==== All you need is Evaluate in your code: Do[Plot[Evaluate[FuncList[[i]], {VarList[[i]], -5, 5}]], {i, 1, Length[VarList]}] or you might prefer: Plot[#1, {#2, -5, 5}] & @@@ Transpose[{FuncList, VarList}] Andrzej Kozlowski Yokohama, Japan http://www.mimuw.edu.pl/~akoz/ http://platon.c.u-tokyo.ac.jp/andrzej/ > Dear colleagues, how can I solve the following problem: The task is to successively plot > the functions given in FuncList with the accociated variable > FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand > ==== (Somehow the original posting never reached me). But what's wrong with dfx[x_, t_] := Derivative[1, 0][f][x, t] ? Andrzej Yokohama, Japan http://www.mimuw.edu.pl/~akoz/ http://platon.c.u-tokyo.ac.jp/andrzej/ f[x_, t_] := Sin[x*t] > dfx[x_, t_] := Module[{y, df}, > df = D[f[y, t], y]; > Block[{y = x}, > df > ] > ] Jens > Dear Listers, > I find myself defining functions in terms of differentiation. For > example, > f[x_,t_]:=Sin[x*t] > dfx[x_,t]:=D[Sin[y,t],y]/.y->x > This works well, but it seems to me that there should be a better way > to do this. That is, there should be a better way to define a > 'derivative' of a previous function without going through the > replacement contortions. I can't find the answer in the archive. > Can someone tell me the most straightforward way to do this? Will it > work to define a gradient vector or Jacobian matrix? A Hessian > matrix? > -- > Jason Miller, Ph.D. > Division of Mathematics and Computer Science > Truman State University > 100 East Normal St. > Kirksville, MO 63501 > http://vh216801.truman.edu > 660.785.7430 > ==== It seems that I am having problems in embedding the eps fonts in Mathematica generated files using the program emmathfnt from Mathsource. Currently, I am using version 4.2 and with the previous version 4.1, I did not have any problems with emmathfnt. This is what I am doing: In[90]:= gr=Plot[Sin[x], {x, 0, Pi}, FrameLabel[Rule] { [Alpha] , [Beta]}]; scratchFile=Export[Close[OpenTemporary[]],gr,EPS]; Run[C:WINNTemmathfnt,-o,temp,-d, C:Program FilesWolfram ResearchMathematica4.2SystemFilesFontsType1,scratc hFile] Out[92]= 0 The file is generated but the fonts are not included. Can some one tell me what I am doing wrong? Note the executable file emmathfnt is the same found on Mathsource and the location of the file is in C:WINNT. Also since I still have version 4.0 fonts, I tried the above Run command without the -d flag and I got the same result. Finally, one can not help but wonder, why there is no option in export that allow the fonts to be included in Mathematica generated figures for better portability. Wissam AlSaidi ==== Frank, The first method is just to Evaluate the iterator. FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Do[Plot[FuncList[[i]], Evaluate[{VarList[[i]], -5, 5}]], {i, 1, Length[VarList]}] But a simpler method is to use functional programming... MapThread[Plot[#1, {#2, -5, 5}] &, {FuncList, VarList}]; David Park djmp@earthlink.net http://home.earthlink.net/~djmp/ Frank Brand ==== I«m new, so I«m sorry if the question is so easy, I really think that is easy, but I don«t know how to do it. I have this: b=n-m a=x-b Y=3a + 4a^2 and the program show me this: 3(x-n+m) + 4(x-n+m)^2 or, something like that, the problem is that I want the program show me Y in function of b, or sometimes in function of a, something like this: Y=3(x-b) + 4(x-b)^2 or Y=3a + 4a^2 ==== Forget about procedural programming, i.e., no more Do's ever again. Use MapThread: In[1]:= FuncList={Exp[x],Sin[y],z^3}; VarList={x,y,z}; In[3]:= f[a_,b_]:=Plot[a,{b,-5,5}] In[4]:= MapThread[f,{FuncList,VarList}]; Oh, and try not to use uppercase letters in the first position of your functions and variable names. These are reserved for Mathematica built-in functions. Tomas Garza Mexico City ----- Original Message ----- > VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand > ==== The solution is using Evaluate. In[1]:= FuncList = {Exp[x], Sin[y], z^3}; In[2]:= VarList = {x, y, z}; In[3]:= Do[Plot[Evaluate[FuncList[[i]], {VarList[[i]], -5, 5}]], {i, 1, Length[VarList]}] Greetings, Germ.87n Buitrago A. ----- Original Message ----- > VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand > ==== Dear colleagues, how can I solve the following problem: The task is to successively plot the functions given in FuncList with the accociated variable FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] i[RightDoubleBracket], {VarList[LeftDoubleBracket] i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand ==== Try something less clumsy, eg : Plot[#1,{#2,-5,5}]&@@@Transpose[{FuncList,VarList}] or why not have a particular symbol for the independent variable - then just map the plot command over the FuncList : Plot[#,{t,-5,5}]&/@{Exp[t],Sin[t],t^3} bye, Borut | Dear colleagues, | | how can I solve the following problem: The task is to successively plot | the functions given in FuncList with the accociated variable | | | FuncList = {Exp[x], Sin[y], z^3}; | | VarList = {x, y, z}; | | Do[Plot[FuncList[LeftDoubleBracket] | i[RightDoubleBracket], {VarList[LeftDoubleBracket] | i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] | | Frank Brand | | | ==== Frank, FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; MapThread[Plot[#1, {#2, -5, 5}] &, {FuncList, VarList}] -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 > Dear colleagues, how can I solve the following problem: The task is to successively plot > the functions given in FuncList with the accociated variable > FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand > Reply-To: kuska@informatik.uni-leipzig.de ==== FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Plot[Evaluate[#[[1]], {#[[2]], -5, 5}]] & /@ Transpose[{FuncList, VarList}] Jens Dear colleagues, how can I solve the following problem: The task is to successively plot > the functions given in FuncList with the accociated variable FuncList = {Exp[x], Sin[y], z^3}; VarList = {x, y, z}; Do[Plot[FuncList[LeftDoubleBracket] > i[RightDoubleBracket], {VarList[LeftDoubleBracket] > i[RightDoubleBracket], -5, 5}], {i, 1, Length[VarList]}]] Frank Brand ==== Greetings This problem can be solved by conventional programming, but I wonder if there is an elegant Mathematica solution ? A list contains pairs of values, with each pair representing the lower and upper edge of a sub-range. Some of the sub-ranges partially overlap, some fully overlap, others don't overlap at all. The problem is to produce a second list that contains the overall upper and lower edges of the overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result in {{100,270},{300,400}}. In the real case, the input list has several hundred elements and the output list typically has five elements. I have a working solution based on loops, but there must be a more elegant one. I would be very grateful for any suggestions. John Leary ==== John The simplest solution to your trial problem that I could come up with was the following: Apply[List, Apply[Interval, {{100, 200}, {150, 250}, {120, 270}, {300, 400}}]] I hope you can figure it out. I didn't test it on a larger input dataset - my usual experience is that built-in functions are faster for operations on lists than fiddling around with loops. Mark Westwood Greetings This problem can be solved by conventional programming, but I wonder if > there is an elegant Mathematica solution ? A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. In the real case, the input list has several hundred elements and the > output list typically has five elements. I have a working solution based on loops, but there must be a more elegant > one. I would be very grateful for any suggestions. > John Leary ==== I remember there being a similar thread on this subject a while ago, but I am too lazy to check it out. The simplest solution seems to be using Interval, although it may not be very fast. For example In[3]:= Interval[{100,200},{150,250},{120,270},{300,400}] Out[3]= Interval[{100, 270}, {300, 400}] If the above is not sufficiently fast for you, then you may want to search the archives for the thread I mentioned above. Carl Woll Physics Dept U of Washington > Greetings This problem can be solved by conventional programming, but I wonder if > there is an elegant Mathematica solution ? A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. In the real case, the input list has several hundred elements and the > output list typically has five elements. I have a working solution based on loops, but there must be a more elegant > one. I would be very grateful for any suggestions. John Leary ==== >Greetings > >This problem can be solved by conventional programming, but I wonder if >there is an elegant Mathematica solution ? > >A list contains pairs of values, with each pair representing the lower and >upper edge of a sub-range. Some of the sub-ranges partially overlap, some >fully overlap, others don't overlap at all. The problem is to produce a >second list that contains the overall upper and lower edges of the >overlapping sub-ranges. > >A simple example : {{100,200},{150,250},{120,270},{300,400}} would result >in {{100,270},{300,400}}. > >In the real case, the input list has several hundred elements and the >output list typically has five elements. > >I have a working solution based on loops, but there must be a more elegant >one. I would be very grateful for any suggestions. Block[{data = {{100,200},{150,250},{120,270}, {300,400}}}, data = Sort[data,#[[1]]<#2[[1]]&]; {{data[[1,1]], Fold[If[#<#2[[1]],#,Max[#,#2[[2]]]]&, data[[1,2]],Rest[data]]}, {Fold[If[#>#2[[2]],#,Min[#,#2[[1]]]]&, (data=Reverse@data)[[1,1]],Rest[data]], data[[1,2]]}}] --> {{100, 270}, {300, 400}} I haven't tested too extensively. The so-called Mathematica way is illustrated by the use of Fold function to process data, without which you must resort to conventional looping. DH ==== John, The solution using Split that I previously supplied may unnecessarily sort more than once -- here is a correction -- it should be slightly quicker.. lst = Table[{#, # + Random[Integer, {0, 9}]} &[ Random[Integer, {0, 1000}]], {1000}]; FixedPoint[{Min[#],Max[#]}&/@ Split[Sort[#], #1[[2]][GreaterEqual]#2[[1]]&]&,lst]//Timing {0.22 Second,{{1,64},{66,66},{67,175},{177,363},{365,548},{551,853},{857, 857},{858,938},{940,1003}}} FixedPoint[{Min[#],Max[#]}&/@Split[#, #1[[2]][GreaterEqual]#2[[1]]&]&, Sort[lst]]//Timing {0.16 Second,{{1,64},{66,66},{67,175},{177,363},{365,548},{551,853},{857, 857},{858,938},{940,1003}}} Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 > Greetings This problem can be solved by conventional programming, but I wonder if > there is an elegant Mathematica solution ? A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. In the real case, the input list has several hundred elements and the > output list typically has five elements. I have a working solution based on loops, but there must be a more elegant > one. I would be very grateful for any suggestions. John Leary ==== ............. > A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. John, Generate a list of pairs: lst=Table[{#,#+Random[Integer,{0,9}]}&[Random[Integer,{0,1000}]],{1000}]; A slow solution Sort[lst]//. {x___,{a_,b_},{c_,d_},y___}/;c<=b:>{x,{a,Max[b,d]},y}//Timing {5. Second,{{0,219},{221,431},{432,568},{569,599},{600,697},{699,1005}}} A faster one FixedPoint[{Min[#],Max[#]}&/@Split[Sort[#], #1[[2]]>=#2[[1]]&]&, lst]//Timing {0.22 Second,{{0,219},{221,431},{432,568},{569,599},{600,697},{699,1005}}} -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 ==== >This problem can be solved by conventional programming, but I wonder if >there is an elegant Mathematica solution ? >A list contains pairs of values, with each pair representing the lower and >upper edge of a sub-range. Some of the sub-ranges partially overlap, some >fully overlap, others don't overlap at all. The problem is to produce a >second list that contains the overall upper and lower edges of the >overlapping sub-ranges. >A simple example : {{100,200},{150,250},{120,270},{300,400}} would result >in {{100,270},{300,400}}. >In the real case, the input list has several hundred elements and the >output list typically has five elements. If the numbers are all integers less than 401, as in your example, then you could start with the list {1,2,3,...400} and compare each number to every pair in your list-of-pairs. If there exists no pair that the given number falls between (inclusive), replace the number with zero. Converting the resulting list to the output you want is an exercise for the reader (clever replacement rules will do it easily). -- Tim Dellinger www.ews.uiuc.edu/~tdelling tdelling@uiuc.edu ==== Interval[{100, 200}, {150, 250}, {120, 270}, {300, 400}] does what you want. -- Steve Luttrell West Malvern, UK > Greetings This problem can be solved by conventional programming, but I wonder if > there is an elegant Mathematica solution ? A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. In the real case, the input list has several hundred elements and the > output list typically has five elements. I have a working solution based on loops, but there must be a more elegant > one. I would be very grateful for any suggestions. John Leary ==== Mathematica Training Course Whether youâre a beginner or seasoned professional, our training services can help you improve your Mathematica skills. We offer public and private training. Mathematica Intermediate & Programming Course (2 days) ----------------- Amsterdam, December 19-20 Mathematica is an exhaustive, powerful, and user-friendly software package. It is easy to perform basic calculations right way, but when you really want to explore and use the real power of Mathematica an investment is necessary. This course helps you making this investment and is meant for Mathematica users who want to know more about the background of Mathematica and to get a deeper understanding of the package; also you will learn how to use Mathematica more effectively. price: EUR 790 per person excluding VAT URL For more information and subscription: http://www.candiensten.nl/english/cursussen/cursussendetail.asp?id=9 How to register? ----------------- You may register on line via the links provided, or fill in the registration form below and return it to me or to Heleen Henneman. voice : +31 (0)20 5608400 fax : +31 (0)20 5608448 Please contact me if you have any questions. Dick Verkerk P.S. Feel free to share this information amongst friends and colleagues who might be interested! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Registration Form Herewith I register for the course: Mathematica Intermediate & Programming Course (2 days) [ ] Amsterdam, December 19-20 Name : M/F Function : Department : Institute : Address : Zip : City : November 1 Pricing derivatives with PDE (Partial Differential Equations) http://www.candiensten.nl/english/cursussen/cursussendetail.asp?id=41 Check out our complete list of courses at: http://www.candiensten.nl/english/cursussen/home.asp _________________________ Dick Verkerk, managing director CANdiensten, Nieuwpoortkade 23-25, NL-1055 RX Amsterdam voice: +31 20 5608410 fax: +31 20 5608448 verkerk@candiensten.nl _________________________ Your Partner in Finance and Mathematics! ==== Greetings, I have read with great interest this lively debate on numerical prcesion and > accuracy. As I work in the fields of finance and economics, where we feel > ourselves blessed if we get three digits of accuracy, I'm curious as to what > scientific endeavors require 50+ digits of precision? As I recall there are > some areas, such as high energy physics and some elements of astronomy, that > might require so many digits in some circumstances. Are there others? > -Mark I'm not sure what scientific endeavors might directly benefit. I can say that alot of computational endeavors need high precision, and of course some of these are used behind the scenes in scientific computation. Below I list a few. (i) Exact computation that uses approximation behind the scenes. Even someting so mundane as integer division can fall into this category. (ii) Finding relations among real or integer values can be done with high precision arithmetic. For example, one can implement LLL lattice reduction via approximate arithmetic. it's cousin, PSLQ, is entirely an approximate arithmetic procedure and at times it requires high precision. Applications of these would include cryptography and the like, hence this lies at least partly in the realm of applied math. (iii) Some algorithms may have low precision input but require higher precision at intermediate steps. An example is the method we use for solving systems of multivariate polynomial equations. You can regard the input as representing a family of problems (parametrized by the range of fuzz implied by the low precision input). Clearly the raising of precision in such circumstances is in some sense artificial, insofar as what we obtain is a solution to a particular member of the family (actually to a narrow subfamily). However we also make some attempt to detect ill conditioning; if the problem is well conditioned then solutions to all members of the family will be reasonably near to the one we obtain. (iv) Some statistical functions may require fairly high precision behind the scenes in order to obtain reasonable results for inputs that are not outrageous. This can often be mollified by changing the algorithm used but sometimes high precision is the simplest way to proceed. (v) Computational geometry problems frequently become nongeneric arithmetic can help to handle cases wherein nongenericity makes the problem pathological (often perturbation or similar devices are also needed). integration to counter various ills such as cancellation error. I'm sure there are oodles of other computational examples wherein high precision saves the day. The moral is that, while scientific examples rarely provide high precison input, methods of computation required by scientists may well still require high precision arithmetic. Also note that while financial forecasting may be blessed to get three digits, other aspects of the financial world require much more. Around 10 years ago a bank investigated purchasing Mathematica. Apparently they wanted to be certain they had amounts figured to better than the nearest penny (or so I heard). When working with exchange rates I suppose this could be important; crude rounding might allow for those weird secrets work. Wanna buy a Euro from me? Daniel Lichtblau Wolfram Research ==== The more I play with the example the more > depressing it gets. Start > with floating point numbers but explicitly > arbitrary-precision ones. > In[1]:= > a=77617.00000000000000000000000000000; > b=33095.00000000000000000000000000000; > In[3]:= > !(333.7500000000000000000000000000000 b^6 + > a^2 ((11 a^2 > b^2 - > b^6 - 121 b^4 - 2)) + > 5.500000000000000000000000000000 b^8 + > a/(2 > b)) > Out[3]= > !((-4.78339168666055402578083604864320577443814`26.6715*^32)) > In[4]:= > Accuracy[%] > Out[4]= > -6 > Due to the manual section 3.1.6: > When you do calculations with arbitrary-precision > numbers, as > discussed in the previous section, Mathematica > always keeps track of > the precision of your results, and gives only > those digits which are > known to be correct, given the precision of your > input. When you do > calculations with machine-precision numbers, > however, Mathematica > always gives you a machine[CapitalEth]precision result, > whether or not all the > digits in the result can, in fact, be determined > to be correct on the > basis of your input. > Because I started with arbitrary-precision numbers > Mathematica should display > only those digits that are correct, that is none. > No, 26 digits are correct Here is the number: > -0.8273960599468213681 Here is the same number computed by Mathematica with 26 > correct digits: > -4.78339168666055402578083604864320577443814[Times]10^32 It looks like I have been using some wrong definition > of correct.:-) You just proved that Precision is useless as a measure > how good your numerical result is. [...] I rather hope I proved nothing of the sort. Also I'm afraid Mathematica kept better track of the numbers than you did. As for definitions of correct, rather than remark on yours I'll just expose what I meant with specific numerical examples below. You did not actually say why you thought -0.8273960599468213681 would be the appropriate result. So I'll go through the computation in exact arithmetic (I have to admit I am puzzled as to why you did not do this). First I'll rewrite your expression using more variables. a = 77617.00000000000000000000000000000; b = 33095.00000000000000000000000000000; c = 333.7500000000000000000000000000000; d = 5.500000000000000000000000000000; In[6]:= InputForm[val = c*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + d*b^8 + a/(2*b)] Out[6]//InputForm= -4.78339168666055402578083604864320577443814`26.6715*^32 This is what I got. Now we'll redo in exact arithmetic. rata = Rationalize[a]; ratb = Rationalize[b]; ratc = Rationalize[c]; ratd = Rationalize[d]; In[12]:= InputForm[exactval = ratc*ratb^6 + rata^2* (11*rata^2*ratb^2 - ratb^6 -121*ratb^4 - 2) + ratd*ratb^8 + rata/(2*ratb)] Out[12]//InputForm= -63322539148012414193286707611938758031/132380 In[13]:= InputForm[N[exactval]] Out[13]//InputForm= -4.783391686660554*^32 I think it is reasonable to claim that these agree. I dug through some early posts on the topic and came across a value for b at one time that was one larger (this supports my long-held suspicion that numbers slowly decay in discrete increments...). In[14]:= b2 = 33096.00000000000000000000000000000; In[15]:= InputForm[val2 = c*b2^6 + a^2*(11*a^2*b2^2 - b2^6 - 121*b2^4 - 2) + d*b2^8 + a/(2*b2)] Out[15]//InputForm= -0.827469148`-0.3833 What this reveals is a number that Mathematica claims has NO trustworty digits. The InputForm also reveals the untrustworthy digits, and, sure enough, it comes close to what you have called the correct value, and specifically they agree to four places. My opinion is that the Mathematica significance arithmetic is doing, shall I say, precisely as it ought. Daniel Lichtblau Wolfram Research Reply-To: Mark Coleman ==== Greetings, I have read with great interest this lively debate on numerical prcesion and accuracy. As I work in the fields of finance and economics, where we feel ourselves blessed if we get three digits of accuracy, I'm curious as to what scientific endeavors require 50+ digits of precision? As I recall there are some areas, such as high energy physics and some elements of astronomy, that might require so many digits in some circumstances. Are there others? -Mark ==== > Greetings, I have read with great interest this lively debate on numerical prcesion and > accuracy. As I work in the fields of finance and economics, where we feel > ourselves blessed if we get three digits of accuracy, I'm curious as to what > scientific endeavors require 50+ digits of precision? As I recall there are > some areas, such as high energy physics and some elements of astronomy, that > might require so many digits in some circumstances. Are there others? > -Mark Mark, There may be occasions when the outcome of a real process is so sensitive to changes in input that unless we know very precisely what the input is then we can know very little about the outcome - chaotic processes are of this kind. The difficulty is real and no amount of computer power or clever progamming will do much about it. Another situation is when the the process is not so sensitive but calculating with our formula or programme introduces accumulates significant errors. Here is a very artificial example of the latter (I time the computation and find the MaximumMemory used in the session as we go through the example): ser=Normal[Series[Cos[#],{#,0,200}]]; MaxMemoryUsed[] 1714248 Calculating with machine number does not show much of a pattern ( I have deleted the graphics - please evaluate the code), pts= With[{ss=ser},Table[ {#,ss}&[x], {x,50.,70., .1}]];//Timing ListPlot[pts, PlotJoined->True]; MaxMemoryUsed[] {5.11 Second,Null} 1723840 Using bigfloat inputs with precision 20 shows some pattern: pts= With[{ss=ser},Table[ {#,ss}&[SetPrecision[x,20]], {x,50.,70., .1}]];//Timing ListPlot[pts, PlotJoined->True,PlotRange[Rule]All]; MaxMemoryUsed[] {17.52 Second,Null} 1759664 Precision 40 does very well: pts= With[{ss=ser},Table[ {#,ss}&[SetPrecision[x,40]], {x,50.,70., .1}]];//Timing ListPlot[pts, PlotJoined->True,PlotRange[Rule]All]; MaxMemoryUsed[] {19.38 Second,Null} 1797072 Now we might think the correct outcomes are showing up, and use an interpolating function for further , and faster, calculation. f=Interpolation[pts] InterpolatingFunction[{{50.000000,70.00000}},<>] pts= Table[ f[x],{x,50, 70, .1}];//Timing ListPlot[pts, PlotJoined->True,PlotRange[Rule]All]; MaxMemoryUsed[] {0.33 Second,Null} As a matter of interest, this is what happens if we substitute exact numbers (rationals and integers) for reals-- the computation takes an excessively long time and quite a bit more memory. pts= With[{ss=ser},Table[ {#,ss}&[SetPrecision[x,Infinity]], {x,50.,70., .1}]];//Timing ListPlot[pts, PlotJoined->True,PlotRange[Rule]All]; MaxMemoryUsed[] {992.28 Second,Null} 2413808 This also shows that we may in fact want to replace exact inputs with bigfloats. I should be interested to hear of other example, really real one in particular. I imagine that there are many situations where trends and shapes are more important than specific values. -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay@haystack.demon.co.uk Voice: +44 (0)116 271 4198 > > ==== In the real world of physics there are several subatomic level processes which can only be distinguished by small changes in the n-th decimal place. But there is one example which is fairly easy to comprehend, and that is the constancy of the speed of light in a vacuum regardless of reference frame, as proposed in Einstein's special theory of relativity. If this were true only to the 9th or 10th decimal place, or, for that matter, to the 50th place, then whoever managed to show that it was not really a constant would certainly be in Nobel Prize territory, and much of modern physics would need a rewrite. Kevin > Greetings, > I have read with great interest this lively debate on numerical prcesion > and > accuracy. As I work in the fields of finance and economics, where we feel > ourselves blessed if we get three digits of accuracy, I'm curious as to > what > scientific endeavors require 50+ digits of precision? As I recall there > are > some areas, such as high energy physics and some elements of astronomy, > that > might require so many digits in some circumstances. Are there others? > > -Mark . ==== > [...] This subthread gets difficult to follow with all the indenting and the like so I will edit a bit for clarity. Here is some input. f = SetPrecision[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 100]; One question that arose is, as best I can phrase it, How might I set values for a and b and retain 100 digits of precision (or perhaps accuracy)? There are a few answers and which you like will depend on what you really want to do. (i) You can use a = SetPrecision[77617.,100]; b = SetPrecision[33096.,100]; As has been pointed out a few times, this will give a number with 100 digits of precision. But that number will not resemble: Clear[a,b] a = SetPrecision[77617,100]; b = SetPrecision[33096,100]; 33375/100*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 11/2*b^8 + a/(2*b) or any of the equivalent variations that have been presented in this thread. (ii) You can make input exact before doing any approximate arithmetic wherein canellation error might arise. Using Rationalize, I show this below. Clear[a,b] f = 333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 5.5*b^8 + a/(2*b) f = Rationalize[f] In[39]:= Precision[N[f /. {a->77617,b->33096}, 100]] Out[39]= 100. (iii) You cannot do what you want because you work with low precision input and want a high precision result. > Assume that I want accuracy and precision of 100 for > f. You advice me to make experiments to find out, what > should be the initial precision and accuracy of a and > b to reach the requested accuracy and precision for f. > Notice, that you cannot just repeat I[26], we saw > already what happens. I have to re-type I[24], I[25], > I[26], I[27], I[28], and I[29] as many times as needed > to get f with accuracy and precision 100. I am curious to know how exactly you defined I[...]. It involves a protected symbol. In[54]:= I[a_] := a^2 SetDelayed::write: Tag Complex in I[a_] is Protected. Out[54]= $Failed As for obtaining requested accuracy or precision, I gave no such advice. If you begin with exact input this can be done via N as per response (ii) above. I did not do any experimenting but simply directed N[] to find the result to 100 digits precision. > Dan, you simply advocate to do MANUAL WORK that should > be done by machine. See my above remark. > Let's suppose that in the above example I just want 60 > digits not 61. Precisely, I want 60 digits and nothing > or zeros afterwards. Let's see if I could use > SetAccuracy. In[30]:= > SetAccuracy[%, 60] Out[30]= > -0.82739605994682136814116509547981629199903311578438481991781 In[31]:= > % // FullForm Out[30]//FullForm= > -0.827396059946821368141165095479816291999033115784384819917814841672467988` > 59.9177 Oops, it did not work (as expected). Actually it did. You have 59.9177 digits of precision. If you check you will find that you have 60. digits of accuracy as you had requested. > [...] > Dan, is there any simple way to get what I want? If what you wanted was a number with 60 digits accuracy (which certainly was what you requested), then indeed you got it. > As I repeated already number of times, at this stage > of the development of computer technology, software > should do it for me (!). We both know that this is > doable. Some of the textbooks that you just advised me > to read describe it. As a developer of Mathematica, > tell us why do you consider this to be a bad idea? Peter Kosta First I must request references since I am not certain what exactly you have in mind that the software will do. Then I'll comment on what, as best I can assess, you seem to want the software to do. Based on prior notes from you in this thread, it appears that you want it to treat a number such as 1.2 as an exact entity 5/6. This can be done by exact methods, e.g. preprocessing so that all numbers get rationalized. It cannot be done by our numerical engine (or any other), as that will not rationalize for you. It can also be done by you working with exact input. This would be a simple expedient, but quite effective. I would consider it to be a terrible idea to automatically rationalize every approximate number input and then to work with exact arithmetic. While I am not certain this is what you advocate, it is the only interpretation I can find with would allow for the sort of result you seem to expect. It is a terrible idea because it bypasses solid numerical methods that have been developed over several decades for handling computations accurately and reliably (subject to appropriate input!), and in reasonable time. It would entirely disable any functionality for which no exact methods are known, e.g. solving many ODEs, optimization, and the like. I could go on for a while but I my four typing fingers will get sore. I'll just finish by noting that it is a terrible idea because it would punish all users of numeric computation in Mathematica. I fail to see any useful purpose in that. Mind you, while I regard it as a terrible idea, I am still not certain that this was in fact what you propose. Again, it would be helpful to software) so I can see what it is you really want. Daniel Lichtblau Wolfram Research ==== > Here's an even more extreme result: f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - > 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 50]; > a = 77617.; b = 33096.; > f > Precision[f] -1.180591620717411303424`71.0721*^21 > 71 71.0721 digits of precision? I don't think so!! Either I am it altogether or you are just simply beating to death the point that in case of machine arithmetic (only!) Precision and Accuracy are purely formal and essentially meaningless. One can argue whether in this case there is any point of returning any value for Precision, or Accuracy (like 71 above, or -5 for Accuracy in the example that fooled me), but it's not a big deal and it most certainly does not make SetPrecision meaningless. On the contrary, SetPrecision is very useful and in fact it is SetPrecision that can tell you that the answer above is meaningless: In[8]:= f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 50]; a=SetPrecision[77617.,$MachinePrecision]; b = SetPrecision[ 33096.,$MachinePrecision]; In[10]:= {f,Precision[f]} Out[10]= {1.19801754103509`0*^19, 0} I would say this is correct and show that SetPrecision is very useful indeed. It tells you (what of course you ought to already know in this case anyway) that machine precision will not give you a realiable answer in this case. If you know your numbers with a great deal of accuracy you can get an accurate answer: In[24]:= f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 100]; a=SetPrecision[77617.,100]; b = SetPrecision[33096.,100]; In[26]:= {f, Precision[f]} Out[26]= {-0.82739605994682136814116509547981629199903311578438481991 781484167246798617832`61.2597, 61} Again you can be pretty sure that you got an accurate answer, provided of course your original setting of precision was valid. Honestly, to say that SetPrecision and SetAccuaracy are useless is one of the silliest thing I have read on this list in years. > Andrzej Kozlowski Yokohama, Japan http://www.mimuw.edu.pl/~akoz/ http://platon.c.u-tokyo.ac.jp/andrzej/ ==== [...] > I would say this is correct and show that SetPrecision is very useful > indeed. It tells you (what of course you ought to already know in this > case anyway) that machine precision will not give you a realiable > answer in this case. If you know your numbers with a great deal of > accuracy you can get an accurate answer: > In[24]:= > f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - > 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 100]; > a=SetPrecision[77617.,100]; b = SetPrecision[33096.,100]; > > In[26]:= > {f, Precision[f]} > Out[26]= > {-0.82739605994682136814116509547981629199903311578438481991 > 781484167246798617832`61.2597, 61} > > Congratulations! You just requested accuracy of 100 for f and got 61 ( > to convince yourself add Accuracy[f] to In[26]). If In[24] one > replaces SetAccuracy by SetPrecision the result is similar. PK > [...] One has (initially) an accuracy of 100 for an expression that contains variables. In[25]:= Clear[a,b,f] In[26]:= f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 100]; In[27]:= Accuracy[f] Out[27]= 100. Now we assign values to some indeterminants in f. In[28]:= a = SetPrecision[77617.,100]; b = SetPrecision[33096.,100]; In[29]:= {f, Precision[f], Accuracy[f]} Out[29]= {-0.8273960599468213681411650954798162919990331157843848199178148, 61.2599, 61.3422} The precision and accuracy has dropped. This is all according to standard numerical analysis regarding cancellation error. You'll find it in any textbook on the topic. As for what happens when you artificially raise precision (or accuracy) of machine numbers far beyond that guaranteed by their internal representation, that falls into to category of garbage in, garbage out. It is, howoever, valid to use SetPrecision to raise precision in (typically iterative) algorithms where significance arithmetic might be unduly pessimistic due to incorrect assumptions about uncorollatedness of numerical error. Examples of such usage have appeared in this news group. Daniel Lichtblau Wolfram Research ==== [...] I would say this is correct and show that SetPrecision is very useful > indeed. It tells you (what of course you ought to already know in this > case anyway) that machine precision will not give you a realiable > answer in this case. If you know your numbers with a great deal of > accuracy you can get an accurate answer: In[24]:= > f = SetAccuracy[333.75*b^6 + a^2*(11*a^2*b^2 - b^6 - > 121*b^4 - 2) + 5.5*b^8 + a/(2*b), 100]; > a=SetPrecision[77617.,100]; b = SetPrecision[33096.,100]; > In[26]:= > {f, Precision[f]} Out[26]= > {-0.82739605994682136814116509547981629199903311578438481991 > 781484167246798617832`61.2597, 61} > Congratulations! You just requested accuracy of 100 for f and got 61 ( to convince yourself add Accuracy[f] to In[26]). If In[24] one replaces SetAccuracy by SetPrecision the result is similar. PK > Again you can be pretty sure that you got an accurate answer, provided > of course your original setting of precision was valid. Honestly, to say that SetPrecision and SetAccuaracy are useless is one > of the silliest thing I have read on this list in years. > Andrzej Kozlowski > Yokohama, Japan > http://www.mimuw.edu.pl/~akoz/ > http://platon.c.u-tokyo.ac.jp/andrzej/ ==== I've been trying to use PlotVectorField for the following differential equation: dy/dt = 0.08*y*(1-y/1000) but I haven't been successful yet. I tried to do the following: f[t_, y_] := {1, 0.08*y*(1 - y/1000)} < 1]; -- Steve Luttrell West Malvern, UK > I've been trying to use PlotVectorField for the > following differential equation: > dy/dt = 0.08*y*(1-y/1000) > but I haven't been successful yet. > I tried to do the following: > f[t_, y_] := {1, 0.08*y*(1 - y/1000)} > < PlotVectorField[f[t, y], {t, 0, 80}, {y, 0, 1400}]; > but I'm getting a meaningless plot so I'd appreciate > if someone could tell me what is what I'm doing wrong. > Ruben __________________________________________________ > Do you Yahoo!? > http://faith.yahoo.com > ==== Dear group, I have the following question regarding a lengthy calculation using Mathematica: For given w points in x direction and h points in y direction, I can construct all the points using h=10; w=8; points=Flatten[Transpose[Outer[List,Range[w],Range[h]]],1] Next, I need to find all the possible pairs of point including points themselves, i.e., pair AA. I can use pairs=Outer[List,points,points,1] Then, I have to clear those pairs that repeat themselves, i.e., pair AB and pair BA. Also, when w and h are of the order of 1000s, the computation takes a very long time. Is there a better way of doing the second part of Sincerely Cheng ==================================================== Cheng Liu, Ph.D. MST-8, Structure/Property Relations Materials Science and Technology Division Los Alamos National Laboratory Los Alamos, New Mexico 87545 ==================================================== ==== Cheng, If you have h and w on the order of 1000, then your points list will have 10^6 points in it. If you then want to have a list of every possible pair of points, that list will consist of 10^12 pairs. Each pair of points consists of 4 integers, so that means your pairs list will have 4 10^12 integers in it. Even if Mathematica could store each integer using 4 bytes, that would require over 10^13 bytes, or 10000 gigabytes of storage. In order for Mathematica to function efficiently, the above storage must be in memory and not in virtual memory on the hard drive. In other words, creating such a pairs list is impossible at the present time, and is probably impossible for the forseeable future. If you truly need such a pairs list, then you may be able to work with h and w on the order of 100 if you have a large amount of memory. What in the world are you trying to do? I doubt that creating such a pairs list is necessary for you to accomplish whatever it is you are trying to do. Carl Woll Physics Dept U of Washington > Dear group, I have the following question regarding a lengthy calculation > using Mathematica: For given w points in x direction and h points in y direction, I can > construct all the points using h=10; w=8; > points=Flatten[Transpose[Outer[List,Range[w],Range[h]]],1] Next, I need to find all the possible pairs of point including points > themselves, i.e., pair AA. I can use pairs=Outer[List,points,points,1] Then, I have to clear those pairs that repeat themselves, i.e., pair AB and > pair BA. Also, when w and h are of the order of 1000s, the computation > takes a very long time. Is there a better way of doing the second part of Sincerely Cheng > ==================================================== > Cheng Liu, Ph.D. > MST-8, Structure/Property Relations > Materials Science and Technology Division > Los Alamos National Laboratory > Los Alamos, New Mexico 87545 ==================================================== ==== >I've been using Mathematica 4.1 on Win98 as a word processor for >math-related documents, but often people that need to see the documents >don't have Mathematica, and for whatever reason on my computer the HTML >saves don't work at all. I'd like to export to PDF format. I can export >images to PDF format no problem using, for example >Export[c:docsplot3.pdf, Plot[Sin[x],{x,-2Pi,2Pi}]], >and I can export cells correctly to GIF, JPEG, and WMF formats (probably >more, those are the only ones I tested) using, for example >Export[c:docscell4.gif, Cell[ <<...(copied cell data from Edit->Copy >As->Cell Expression)...> ]] >When I change the filename to a .PDF and evaluate the cell, the program >displays 'Running...' for a second and gives the 'Out[n] = c:docscell4.pdf >' message as if a file was created, but no file is created anywhere with any >name that I could find with Start->Find->[All files and folders created in >the previous day]. >Is there a limitation to PDF exporting I don't know about? Do I need to >upgrade to 4.2? Am I doing something wrong with the Export[] command? Do I >need a faster computer? A patch? Something else? This is a limitation of PDF export. The mechanism for exporting GIF, JPEG, and other raster formats is completely different than the system used for PDF export. Because of this PDF export is limited to graphics expressions. Cells and Notebooks cannot be converted via Export. However, there is a way to generate PDFs using the frontend. See http://support.wolfram.com/mathematica/graphics/export/convertpdfghostscript .html http://support.wolfram.com/mathematica/graphics/export/convertpdfdistiller.h tml ==== how can Mathematica 4.1 be used to combine sound and graphics? In particular, I would like to prepare a demo video about differential equations. I can Plot the solution and I can Play the solution. How to combine the 2 results into a single file that can be played back using xine or DivX, like ordinary video can? ==== it depends a bit what you want to do. E.g.: If you want to write applications for clients then go with that systems your clients use (probably Windows). If you just use it for yourself, for development: use what you like more. anymore, like there were in 3.0 times. The copy and paste problems are gone if you switch off the KDE Klipper. On the other hand, there are a few OS- (or better Window-manager-specific) 1.: you cannot rotate text (i.e., FrameLabel settings will look weird (vertically arranged horizontal letters), you have to use RotateLabel -> False generally, or play with the Fonts settings such that horizontal tick marks still fit) 2.: If you work with bigger graphics in notebooks I suggest Windows (or MacOS X) since least on my XFree 4.2 installation with a not too modern graphics card). Also I find resizing of larger notebooks somewhat slow. 3.: If you like to work with keyboard shortcuts: Windows is better, clearly. 4.: There are a couple of Font issues which are better on Windows since not all fonts ==== I'd like to add a JLink animation of the rolling ball based on Selwyn's solution: UseFrontEndForRendering = False; createWindow[] := Module[{frame}, frame = JavaNew[com.wolfram.jlink.MathFrame, Doppler Animation]; drawArea = JavaNew[com.wolfram.jlink.MathCanvas]; drawArea@setUsesFE[UseFrontEndForRendering]; drawArea@setSize[800, 600]; JavaBlock[frame@setLayout[JavaNew[java.awt.BorderLayout]]; frame@add[drawArea, ReturnAsJavaObject[BorderLayout`CENTER]]; frame@pack[]; frame@setSize[800, 600]; frame@setLocation[200, 200]; JavaShow[frame]]; frame ] drawRoll[t_] := Show[curve, Graphics[{RGBColor[1, 0, 0], Disk[{xx[t], Cosh[xx[t]]}, 0.05]}], PlotRange -> {{-1.2, 1.2}, {0.9, 1.65}}, AspectRatio -> Automatic, Axes -> None, DisplayFunction -> Identity]; times = Range[0, 5, .05]; LoadJavaClass[java.lang.Thread]; AnimationPlot[t_List] := JavaBlock[Block[{frm}, frm = createWindow[]; Map[(obj = drawRoll[#]; drawArea@setMathCommand[obj]; drawArea@repaintNow[]; Thread@sleep[5];) &, t ] ]] AnimationPlot[times] jerry blimbaum panama city, fl -----Original Message----- and the equation of motion is diffeq = Simplify[ D[D[L, x'[t]], t] ] == Simplify[ D[L, x[t]] ] Now solve and animate ... xx[t_] = x[t]/. First[ NDSolve[{diffeq, x[0] == -1, x'[0] == 0}, x[t], {t, 0, 5}]] curve = Plot[Cosh[x], {x, -1, 1}] Do[ Show[curve, Graphics[Disk[{xx[t], Cosh[xx[t]]}, 0.025]], PlotRange -> {{-1.2, 1.2}, {0.9, 1.65}}, AspectRatio -> Automatic, Axes->None], {t, 0, 5, 0.1}] ---- > I intend to make an animation in which ball A rolls down on an inclined plane from the left whilst ball B - starting from the same height - rolls down Cosh[t]'s path from the > right. x-axis is time t, y-axis is height h. Ball A is fine; ball B - which should arrive at h=0 before A - is beyond my means. ==== I noticed that n Mathematica 3.0 , IntegerDigits function is giving wrong results. This problem is not found in Mathematica 4.1. Whether any body else has also noted any such problem. For example IntegerDigits[10^18+7] will give the digits 0 and 7 , omitting 1. ==== You're right; I wasn't exporting a Cell. I misunderstood his post and successfully executed this: Export[c:docsplot3.pdf, Plot[Sin[x],{x,-2Pi,2Pi}]] but that was working for him, already. Sorry for the confusion. ==== > w = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > x = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > y = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > z = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > 2. In the latter case I also want to plot 4 types of points. > How do I get ListPlot to put down 4 plots superimposed? > Or can't I? You can, but you have to do it via Graphics`MulitpleListPlot`. Load the requisite packages Needs[Graphics`Colors`] Needs[Graphics`MultipleListPlot`] Define cols = {Black, Red, Green, Blue}; pnts = {PlotSymbol[Triangle], PlotSymbol[Box], PlotSymbol[Diamond], PlotSymbol[Star]}; Then grf = MultipleListPlot[w, x, y, z, PlotStyle->cols, SymbolShape->pnts, SymbolsStyle->cols ]; Documentation shows how to incorporate legends and to define other symbols. >How can I change points properties (such as Size and Color) for the plot >below? The PlotStyle Option does not work for this LabeledListPlot << Graphics`Graphics` > >listcities = {{1, 5}, {4, 6}, {7, 5}, {5, 4}, {9, 4}, {2, 3}, {4, 2}, >{6, 2}, {1, 1}, {5, 1}, {3, 0}, {9, 0}}; > >LabeledListPlot[listcities, Axes -> None, Frame -> True, > DisplayFunction -> $DisplayFunction] It's not a built-in feature of LabeledListPlot, so you'll have to do it manually. gr=LabeledListPlot[listcities, Axes -> None, Frame -> True, DisplayFunction -> $DisplayFunction] You can add graphics directives to the points and text with a replacement rule. Show[gr/.x_Point|x_Text->{RGBColor[1,0,0],x}] >Question Three: Why the Goto statement below is not working? > >q = 2; >Label[start]; >q = 3; >Label[begin]; >Print[q]; >q += 1; If[q < 6, Goto[begin], Goto[start]] First, let me say that noone should ever use Goto. You should always use a loop or some other process instead. With that said . . . When you type semicolon separated input into the frontend, each command is treated as a separate input (as if they were in separate input cells). So the Labels and the Gotos are evaluated separately and there's no way to jump from one to the other. Instead, the commands need to be within the same expression. This can be done by wrapping the command in a CompoundExpression ( q = 2; Label[start]; q = 3; Label[begin]; Print[q]; q += 1; If[q < 6, Goto[begin], Goto[start]] ) Or some other expression, like a Module. -------------------------------------------------------------- Omega Consulting The final answer to your Mathematica needs Spend less time searching and more time finding. http://www.wz.com/internet/Mathematica.html ==== >I would appreciate help with these problems: 1. I'm plotting several thousand points, which I can do >either with something like this (this is a test): > >w = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >x = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >y = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >z = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >dw = Graphics[{PointSize[0.01], RGBColor[ 1, 0, 0], w}]; >dx = Graphics[{PointSize[0.01], RGBColor[.8, .8, .8], x}]; >dy = Graphics[{PointSize[0.01], RGBColor[ 0, .5, .9], y}]; >dz = Graphics[{PointSize[0.01], RGBColor[.8, .8, 0], z}]; >Show[dw, dx, dy, dz, AspectRatio -> Automatic, > PlotRange -> {{0, 1}, {0, 1}}, > Axes -> Automatic, > Frame -> True, > Background -> GrayLevel[.026], > >This gives me dots in 4 colors for distinguishing different >kinds of points in my real application. This works fine but >needs the Point structure. Or, I can do (this is for one >kind of point), > >t = Table[{Random[], Random[]}, {i, 1, 1024}]; >ListPlot[t, AspectRatio -> Automatic, > Axes -> Automatic, > Frame -> True, > Background -> GrayLevel[.026] > ]; > >which seems simpler and may fit into the rest of the program >more easily. 1. How do I get the RGBColor Rule or the equivalent into >the latter? The RGBColor[] call is not a rule. 2. In the latter case I also want to plot 4 types of points. >How do I get ListPlot to put down 4 plots superimposed? >Or can't I? 3. In either case, I need to make the whole plot area about >twice as big. That is, it now occupies about a 4 square. To >see details better in my real plot, and because with 16k points >the small plot just looks almost like a solid blur, I want to >make it more like 8 square, or as big as will fit the screen >(without changing the plot range or anything else). There >must be a scale factor somewhere. > You can plot more than one list with MultipleListPlot. <Automatic,Axes->Automatic,Frame->True, SymbolShape->{ColorPoint[RGBColor[1,0,0]], ColorPoint[RGBColor[.8, .8, .8]],ColorPoint[RGBColor[ 0, .5, .9]], ColorPoint[RGBColor[.8, .8, 0]]}, SymbolStyle->PointSize[0.01],Background->GrayLevel[.026] ] -------------------------------------------------------------- http://www.wz.com/internet/Mathematica.html ==== >I have to use a graphics of mathematica with powerpoint for a little >Y-axes and line of function) are bold or more visible: how can I do >that? Use the PlotStyle and AxesStyle options as in Plot[x,{x,0,5},PlotStyle->Thickness[0.015],AxesStyle->Thickness[0.015]] ==== how can Mathematica 4.1 be used to combine sound and graphics? In particular, I would like to prepare a demo video about differential equations. I can Plot the solution and I can Play the solution. How to combine the 2 results into a single file that can be played back using xine or DivX, like ordinary video can? http://staffold.vscht.cz/mat/Pavel.Pokorny ==== I'd like to add a JLink animation of the rolling ball based on Selwyn's solution: UseFrontEndForRendering = False; createWindow[] := Module[{frame}, frame = JavaNew[com.wolfram.jlink.MathFrame, Doppler Animation]; drawArea = JavaNew[com.wolfram.jlink.MathCanvas]; drawArea@setUsesFE[UseFrontEndForRendering]; drawArea@setSize[800, 600]; JavaBlock[frame@setLayout[JavaNew[java.awt.BorderLayout]]; frame@add[drawArea, ReturnAsJavaObject[BorderLayout`CENTER]]; frame@pack[]; frame@setSize[800, 600]; frame@setLocation[200, 200]; JavaShow[frame]]; frame ] drawRoll[t_] := Show[curve, Graphics[{RGBColor[1, 0, 0], Disk[{xx[t], Cosh[xx[t]]}, 0.05]}], PlotRange -> {{-1.2, 1.2}, {0.9, 1.65}}, AspectRatio -> Automatic, Axes -> None, DisplayFunction -> Identity]; times = Range[0, 5, .05]; LoadJavaClass[java.lang.Thread]; AnimationPlot[t_List] := JavaBlock[Block[{frm}, frm = createWindow[]; Map[(obj = drawRoll[#]; drawArea@setMathCommand[obj]; drawArea@repaintNow[]; Thread@sleep[5];) &, t ] ]] AnimationPlot[times] jerry blimbaum panama city, fl -----Original Message----- and the equation of motion is diffeq = Simplify[ D[D[L, x'[t]], t] ] == Simplify[ D[L, x[t]] ] Now solve and animate ... xx[t_] = x[t]/. First[ NDSolve[{diffeq, x[0] == -1, x'[0] == 0}, x[t], {t, 0, 5}]] curve = Plot[Cosh[x], {x, -1, 1}] Do[ Show[curve, Graphics[Disk[{xx[t], Cosh[xx[t]]}, 0.025]], PlotRange -> {{-1.2, 1.2}, {0.9, 1.65}}, AspectRatio -> Automatic, Axes->None], {t, 0, 5, 0.1}] ---- Selwyn Hollis > Dear Colleagues, I intend to make an animation in which ball A rolls down on an inclined plane from the left whilst ball B - starting from the same height - rolls down Cosh[t]'s path from the > right. x-axis is time t, y-axis is height h. Ball A is fine; ball B - which should arrive at h=0 before A - is beyond my > means. > Matthias Bode > Sal. Oppenheim jr. & Cie. KGaA > Koenigsberger Strasse 29 > D-60487 Frankfurt am Main > GERMANY > Mobile: +49(0)172 6 74 95 77 > Internet: http://www.oppenheim.de ==== >I've been using Mathematica 4.1 on Win98 as a word processor for >math-related documents, but often people that need to see the documents >don't have Mathematica, and for whatever reason on my computer the HTML >saves don't work at all. I'd like to export to PDF format. I can export >images to PDF format no problem using, for example >Export[c:docsplot3.pdf, Plot[Sin[x],{x,-2Pi,2Pi}]], >and I can export cells correctly to GIF, JPEG, and WMF formats (probably >more, those are the only ones I tested) using, for example >Export[c:docscell4.gif, Cell[ <<...(copied cell data from Edit->Copy >As->Cell Expression)...> ]] >When I change the filename to a .PDF and evaluate the cell, the program >displays 'Running...' for a second and gives the 'Out[n] = c:docscell4.pdf >' message as if a file was created, but no file is created anywhere with any >name that I could find with Start->Find->[All files and folders created in >the previous day]. >Is there a limitation to PDF exporting I don't know about? Do I need to >upgrade to 4.2? Am I doing something wrong with the Export[] command? Do I >need a faster computer? A patch? Something else? This is a limitation of PDF export. The mechanism for exporting GIF, JPEG, and other raster formats is completely different than the system used for PDF export. Because of this PDF export is limited to graphics expressions. Cells and Notebooks cannot be converted via Export. However, there is a way to generate PDFs using the frontend. See http://support.wolfram.com/mathematica/graphics/export/convertpdfghostscript .html http://support.wolfram.com/mathematica/graphics/export/convertpdfdistiller.h tml -Dale ==== I noticed that n Mathematica 3.0 , IntegerDigits function is giving wrong results. This problem is not found in Mathematica 4.1. Whether any body else has also noted any such problem. For example IntegerDigits[10^18+7] will give the digits 0 and 7 , omitting 1. Shyam Sunder Gupta ==== You're right; I wasn't exporting a Cell. I misunderstood his post and successfully executed this: Export[c:docsplot3.pdf, Plot[Sin[x],{x,-2Pi,2Pi}]] but that was working for him, already. Sorry for the confusion. Bobby -----Original Message----- Sender: steve@smc.vnet.net Approved: Steven M. Christensen , Moderator ==== > w = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > x = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > y = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > z = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; > 2. In the latter case I also want to plot 4 types of points. > How do I get ListPlot to put down 4 plots superimposed? > Or can't I? You can, but you have to do it via Graphics`MulitpleListPlot`. Load the requisite packages Needs[Graphics`Colors`] Needs[Graphics`MultipleListPlot`] Define cols = {Black, Red, Green, Blue}; pnts = {PlotSymbol[Triangle], PlotSymbol[Box], PlotSymbol[Diamond], PlotSymbol[Star]}; Then grf = MultipleListPlot[w, x, y, z, PlotStyle->cols, SymbolShape->pnts, SymbolsStyle->cols ]; Documentation shows how to incorporate legends and to define other symbols. Dave. ========================================== Dr. David Annetts EM Modelling Analyst Australia David.Annetts@csiro.au =========================================== ==== >Dear Group, It is a pleasure write to you again. I have three questions to ask. > Alexandre Costa > >Question Two: > >How can I change points properties (such as Size and Color) for the plot >below? The PlotStyle Option does not work for this LabeledListPlot << Graphics`Graphics` > >listcities = {{1, 5}, {4, 6}, {7, 5}, {5, 4}, {9, 4}, {2, 3}, {4, 2}, >{6, 2}, {1, 1}, {5, 1}, {3, 0}, {9, 0}}; > >LabeledListPlot[listcities, Axes -> None, Frame -> True, > DisplayFunction -> $DisplayFunction] It's not a built-in feature of LabeledListPlot, so you'll have to do it manually. gr=LabeledListPlot[listcities, Axes -> None, Frame -> True, DisplayFunction -> $DisplayFunction] You can add graphics directives to the points and text with a replacement rule. Show[gr/.x_Point|x_Text->{RGBColor[1,0,0],x}] >Question Three: Why the Goto statement below is not working? > >q = 2; >Label[start]; >q = 3; >Label[begin]; >Print[q]; >q += 1; If[q < 6, Goto[begin], Goto[start]] First, let me say that noone should ever use Goto. You should always use a loop or some other process instead. With that said . . . When you type semicolon separated input into the frontend, each command is treated as a separate input (as if they were in separate input cells). So the Labels and the Gotos are evaluated separately and there's no way to jump from one to the other. Instead, the commands need to be within the same expression. This can be done by wrapping the command in a CompoundExpression ( q = 2; Label[start]; q = 3; Label[begin]; Print[q]; q += 1; If[q < 6, Goto[begin], Goto[start]] ) Or some other expression, like a Module. -------------------------------------------------------------- Omega Consulting The final answer to your Mathematica needs Spend less time searching and more time finding. http://www.wz.com/internet/Mathematica.html ==== Mario: Use, for example, PlotStyle->Thickness[0.01] for plot and AxesStyle->Thickness[0.01]. Other way is using AbsoluteThickness instead of Thickness. See The Mathematica Book: Section 2.9.3. Germ.87n Buitrago A. ----- Original Message ----- Sender: steve@smc.vnet.net Approved: Steven M. Christensen , Moderator ==== Mario: Use, for example, PlotStyle->Thickness[0.01] for plot and AxesStyle->Thickness[0.01]. Other way is using AbsoluteThickness instead of Thickness. See The Mathematica Book: Section 2.9.3. Germ.87n Buitrago A. ----- Original Message ----- Sender: steve@smc.vnet.net Approved: Steven M. Christensen , Moderator ==== >I have to use a graphics of mathematica with powerpoint for a little >Y-axes and line of function) are bold or more visible: how can I do >that? Use the PlotStyle and AxesStyle options as in Plot[x,{x,0,5},PlotStyle->Thickness[0.015],AxesStyle->Thickness[0.015]] ==== >I would appreciate help with these problems: 1. I'm plotting several thousand points, which I can do >either with something like this (this is a test): > >w = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >x = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >y = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >z = Table[Point[{Random[], Random[]}], {i, 1, 4096}]; >dw = Graphics[{PointSize[0.01], RGBColor[ 1, 0, 0], w}]; >dx = Graphics[{PointSize[0.01], RGBColor[.8, .8, .8], x}]; >dy = Graphics[{PointSize[0.01], RGBColor[ 0, .5, .9], y}]; >dz = Graphics[{PointSize[0.01], RGBColor[.8, .8, 0], z}]; >Show[dw, dx, dy, dz, AspectRatio -> Automatic, > PlotRange -> {{0, 1}, {0, 1}}, > Axes -> Automatic, > Frame -> True, > Background -> GrayLevel[.026], > >This gives me dots in 4 colors for distinguishing different >kinds of points in my real application. This works fine but >needs the Point structure. Or, I can do (this is for one >kind of point), > >t = Table[{Random[], Random[]}, {i, 1, 1024}]; >ListPlot[t, AspectRatio -> Automatic, > Axes -> Automatic, > Frame -> True, > Background -> GrayLevel[.026] > ]; > >which seems simpler and may fit into the rest of the program >more easily. 1. How do I get the RGBColor Rule or the equivalent into >the latter? The RGBColor[] call is not a rule. 2. In the latter case I also want to plot 4 types of points. >How do I get ListPlot to put down 4 plots superimposed? >Or can't I? 3. In either case, I need to make the whole plot area about >twice as big. That is, it now occupies about a 4 square. To >see details better in my real plot, and because with 16k points >the small plot just looks almost like a solid blur, I want to >make it more like 8 square, or as big as will fit the screen >(without changing the plot range or anything else). There >must be a scale factor somewhere. > You can plot more than one list with MultipleListPlot. <Automatic,Axes->Automatic,Frame->True, SymbolShape->{ColorPoint[RGBColor[1,0,0]], ColorPoint[RGBColor[.8, .8, .8]],ColorPoint[RGBColor[ 0, .5, .9]], ColorPoint[RGBColor[.8, .8, 0]]}, SymbolStyle->PointSize[0.01],Background->GrayLevel[.026] ] -------------------------------------------------------------- Omega Consulting The final answer to your Mathematica needs Spend less time searching and more time finding. http://www.wz.com/internet/Mathematica.html ==== For the life of me I am not sure why the following is not working in my v. 4.2: ru[a]=a->x; f[x_]:=(a+b) /. ru[a]; Why do I get f[c] = b+x and not f[c] = b+c? What gives? Lawrence -- Lawrence A. Walker Jr. http://www.kingshonor.com Reply-To: kuska@informatik.uni-leipzig.de ==== because te right hand side of SetDelayed[] is not evaluate. Try ru[a] = a -> x; f[x_] := (a + b) /. ru[a]; f1[x_] := Evaluate[(a + b) /. ru[a]]; and f1[] does what you expect In[]:={f[c], f1[c]} Out[]={b + x, b + c} Jens > For the life of me I am not sure why the following is not working in my > v. 4.2: ru[a]=a->x; > f[x_]:=(a+b) /. ru[a]; Why do I get > f[c] = b+x and not > f[c] = b+c? What gives? Lawrence -- > Lawrence A. Walker Jr. > http://www.kingshonor.com ==== > Could you tell me the CPU you used and its speed etc...i am curious, > other programs out there. I used one processor of a dual 1GH Mac and got the same answer with the following speed: 4.2 for Mac OS X (June 4, 2002) oldmax = $MaxPrecision 6 1. 10 $MaxPrecision = Infinity Infinity With[{n = 2^26}, Timing[ pd = RealDigits[N[Pi, n + 1], 10, 20, 19 - n]; ]] {28794.1 Second, Null} MaxMemoryUsed[] 512055204 pd {{3, 3, 8, 6, 3, 2, 2, 0, 8, 9, 6, 2, 2, 3, 4, 0, 9, 8, 0, 3}, -67108844} Tom Burton -- ==== So would it take about the same amont of time for the complete printout of digits? Of course it would take a few additional seconds to format the output... Or does Mathematica take alot less time when it truncates the output? > Could you tell me the CPU you used and its speed etc...i am curious, > other programs out there. I used one processor of a dual 1GH Mac and got the same answer with the > following speed: 4.2 for Mac OS X (June 4, 2002) > oldmax = $MaxPrecision > 6 > 1. 10 > $MaxPrecision = Infinity > Infinity > With[{n = 2^26}, Timing[ > pd = RealDigits[N[Pi, n + 1], 10, 20, > 19 - n]; ]] > {28794.1 Second, Null} > MaxMemoryUsed[] > 512055204 > pd > {{3, 3, 8, 6, 3, 2, 2, 0, 8, 9, 6, 2, 2, 3, > > 4, 0, 9, 8, 0, 3}, -67108844} Tom Burton ==== Sir, we are having FreeBSD Server, In this we connected a heavy duty Dot matrix printer locally. While on taking outputs, username and file name are printing as BANNER TYPE. Instead of this, we would like to take the print out as username and file name should be printed as header through out the file. if u are having any scripts like that please send us Raj Mohan System Administrator ==== I am considering the following integral W[m_,n_]:=Integrate[BesselJ[m, x]*BesselJ[n, x], {x, 0, Infinity}] where m,n are reals >=0. With Mathematica 4.1 I obtain: If[Re[m+n]>-1, -Cos[(m-n)Pi/2]/(2 Pi)* (2 EulerGamma + Log[4] + PolyGamma[0, 1/2(1 + m - n)] + PolyGamma[0, 1/2(1 - m + n)] + 2PolyGamma[0, 1/2(1 + m + n)]) and so using this answer as a definition I obtain W[0,0]=-(2 EulerGamma + Log[4] + 4 PolyGamma[0, 1/2])/(2 Pi)=0.84564 I suspect that these integrals are divergent (*). So I try the numerical integration: NW[m_,n_]:=NIntegrate[BesselJ[m, x]*BesselJ[n, x], {x, 0, Infinity}] so that NW[0,0]=11.167 Othe couples are W[1,0]=Indeterminate NW[1,0]=0.597973 W[0,1.5]=0.537095 NW[0,1.5]=-5.79306 W[1,1]=0.20902 NW[1,1]=17.5425 W[2,0]=0.427599 NW[2,0]=-6.83464 W[2,1]=Indeterminate NW[2,1]=4.69013 (*) The integral is a particular case of the Weber-Schafheitlin integrals (Abramowitz, 11.4.33). Any explanation about the analytical expression will be gratefully accepteed. Roberto. Roberto Brambilla CESI Via Rubattino 54 20134 Milano tel +39.02.2125.5875 fax +39.02.2125.5492 rlbrambilla@cesi.it ==== WRI Tech Support sent me an answer to the font problem. Copying the Type 1 (not True Type) fonts made the error go away: A workaround for the font-related issue that you encountered, is to place copies of the Mathematica Type 1 fonts from C:Program FilesWolfram ResearchMathematica4.2SystemFilesFontsType1 into C:Program FilesAdobeAcrobat 5.0ResourceFont Sincerely, George Kambouroglou Technical Support Wolfram Research, Inc. support@wolfram.com -----Original Message----- I've been using Mathematica 4.1 on Win98 as a word processor for math-related documents, but often people that need to see the documents don't have Mathematica, and for whatever reason on my computer the HTML saves don't work at all. I'd like to export to PDF format. I can export images to PDF format no problem using, for example Export[c:docsplot3.pdf, Plot[Sin[x],{x,-2Pi,2Pi}]], and I can export cells correctly to GIF, JPEG, and WMF formats (probably more, those are the only ones I tested) using, for example Export[c:docscell4.gif, Cell[ <<...(copied cell data from Edit->Copy As->Cell Expression)...> ]] When I change the filename to a .PDF and evaluate the cell, the program displays 'Running...' for a second and gives the 'Out[n] = c:docscell4.pdf ' message as if a file was created, but no file is created anywhere with any name that I could find with Start->Find->[All files and folders created in the previous day]. Is there a limitation to PDF exporting I don't know about? Do I need to upgrade to 4.2? Am I doing something wrong with the Export[] command? Do I need a faster computer? A patch? Something else? ==== SSG> I noticed that n Mathematica 3.0 , IntegerDigits function is SSG> giving wrong results. This problem is not found in Mathematica SSG> 4.1. Whether anybody else has also noted any such problem. SSG> For example IntegerDigits[10^18+7] will give the digits 0 SSG> and 7, omitting 1. Having made totally 4,000,000 attemtps, I was not able to reproduce your example. What version of Mathematica do you use? ...................................................... 4.2 for Microsoft Windows (February 28, 2002) 4.1 for Microsoft Windows (November 2, 2000) 4.0 for Microsoft Windows (April 21, 1999) Microsoft Windows 3.0 (April 25, 1997) Windows 387 2.2 (April 9, 1993) IntegerDigits[10^18 + 7] IntegerDigits[10^18 + 7] IntegerDigits[10^18 + 7] IntegerDigits[10^18 + 7] IntegerDigits[10^18 + 7] {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7} {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7} {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7} {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7} {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7} ...................................................... Best wishes, Vladimir Bondarenko Mathematical Director Symbolic Testing Group Web : http://www.CAS-testing.org/ http://maple.bug-list.org/VER2/ (under tuning) http://maple.bug-list.org/VER3/ (under tuning) http://maple.bug-list.org/VER1/ (under tuning) Voice : (380)-652-447325 Mon-Fri 9 a.m.-6 p.m. Mail : 76 Zalesskaya Str, Simferopol, Crimea, Ukraine ==== Just tested it with no errors, version 3.0 John A. Velling -----Original Message----- ==== You can use Export[file.dat, expr] where expr is a two-dimensional array. Or for more flexibility study the following. Assuming data has n rows and 2 columns. file = OpenWrite[file.dat]; Map[ ( (* the N may be redundant haven't tested the code w/o it *) str = ToString[PaddedForm[N[#[[1]]],{10,6}]]<> <> ToString[PaddedForm[N[#[[2]]],{10,6}]]; (* make numbers e notation: the *^ notation has given me fits, so I just put this in as a precaution *) str = StringReplace[str, *^ -> e]; WriteString[file, str, n] )&, data]; Close[file] Hope this helps, Lawrence > I'm trying to export a table from Mathematica 4.0 to Notepad, for examples, > or something similar, but it's impossible for me! It always exports the cell > with all its rubbish, or an image (if I use Word). > How can I export just plain _numbers_? Thanx > Fip -- Lawrence A. Walker Jr. http://www.kingshonor.com ==== I'm trying to export a table from Mathematica 4.0 to Notepad, for examples, > or something similar, but it's impossible for me! It always exports the cell > with all its rubbish, or an image (if I use Word). > How can I export just plain _numbers_? Try with this: WriteSimpleTableForm[file_String, data_List, opts___] := Module[{str}, str = OpenWrite[file]; WriteString[str, ToString[TableForm[data, opts]]]; Close[str] ] This is my small solution for this problem. marek ==== I would appreciate any info on these issues. 1. I have a symbol slback. I was getting tag times lback protected (or something) errors. (A typically uninformative error message.) I suspected there was a separation between the s and l, and they looked too far apart, but when I spaced past them with the arrow keys, there did not appear to be anything like a space in between. I retyped the symbol and all was ok. This has happened before. What's going on ??? 2. I'm using Raster to plot data points in a 256x256 array. Two problems: First, regardless of the ImageSize setting (I need the display as big as possible), the individual data cells when examined closely at 300% vary in size by almost 2:1. This makes detailed inspection of the data values difficult. Surely there is some setting of something which would make each data cell an exact number of screen pixels? Second, I'm using Show[ Graphics[Raster[ rescol, ColorFunction -> Hue]], AspectRatio -> Automatic, ImageSize -> 700]; but the Hues don't allow enough easily distinguishable shades to visually recognize even 6 data values easily. (I'm slightly colorblind.) It would be nice to have black and white available for two of the data values, but Hue does not allow this. I don't understand what the documentation says about RasterArray. 3. I wanted to get this raster image into a format where I could dissect it with Photoshop or equivalent. After much fooling around, I found that I can export the selection as an html file, read it into Navigator, do File> Edit Page, which brings up Netscape Composer, right click the image which, allows saving it as a GIF, which I can finally work on with a photo editor. Maybe there is an easier way, or maybe this description will help someone with the same need. Reply-To: kuska@informatik.uni-leipzig.de ==== > I would appreciate any info on these issues. 1. I have a symbol slback. I was getting > tag times lback protected (or something) errors. > (A typically uninformative error message.) > I suspected there was a separation between the s > and l, and they looked too far apart, but when I > spaced past them with the arrow keys, there did > not appear to be anything like a space in between. > I retyped the symbol and all was ok. This has > happened before. What's going on ??? As long as you don't send us the *exact* input we can't help you. You should also send the mathematica version you are using. But typical this error comes from a equation a*b==c where the user has mixed up Equal[] and Set[] 2. I'm using Raster to plot data points > in a 256x256 array. Two problems: First, > regardless of the ImageSize setting (I need the > display as big as possible), the individual data cells > when examined closely at 300% vary in size by > almost 2:1. This makes detailed inspection of the > data values difficult. Surely there is some setting > of something which would make each data cell an > exact number of screen pixels? Second, I'm > using > Show[ Graphics[Raster[ rescol, > ColorFunction -> Hue]], > AspectRatio -> Automatic, > ImageSize -> 700]; > but the Hues don't allow enough easily distinguishable > shades to visually recognize even 6 data values easily. > (I'm slightly colorblind.) The most humans can distinguish 160 gray levels >It would be nice to have black > and white available for two of the data values, but Hue > does not allow this. And something like: mycolor[i_] := Switch[Round[i], 0, RGBColor[0, 0, 0], 1, RGBColor[1, 0, 0], 2, RGBColor[1, 1, 0], 3, RGBColor[0, 1, 0], 4, RGBColor[0, 1, 1], 5, RGBColor[0, 0, 1], _, RGBColor[1, 1, 1]] Show[Graphics[ Raster[Table[Random[Integer, {0, 6}], {16}, {16}], ColorFunction -> mycolor, ColorFunctionScaling -> False]]] does not help ? > I don't understand what the > documentation says about RasterArray. If you can't be more specific *what* you not understand we can not help you. 3. I wanted to get this raster image into a format > where I could dissect it with Photoshop or equivalent. And ? waht does Export[] do ? it write the expression in a desired format, TIFF, PNG, PPM are all lossless compressed bitmap formats, that Mathematica can export and that can be imported into PhotoShop > After much fooling around, I found that I can export the > selection as an html file, read it into Navigator, do File> > Edit Page, which brings up Netscape Composer, right > click the image which, allows saving it as a GIF, which > I can finally work on with a photo editor. Maybe > there is an easier way, or maybe this description will > help someone with the same need. May be that thhis description help someone who can't read the fancy documation on Import[] and Export[]. Jens ==== [snip] > 2. I'm using Raster to plot data points > in a 256x256 array. Two problems: First, > regardless of the ImageSize setting (I need the > display as big as possible), the individual data cells > when examined closely at 300% vary in size by > almost 2:1. This makes detailed inspection of the > data values difficult. Surely there is some setting > of something which would make each data cell an > exact number of screen pixels? GRAY: (No answer received.) I can get around this by making the images bigger but this is not a complete solution. > Second, I'm using > Show[ Graphics[Raster[ rescol, > ColorFunction -> Hue]], > AspectRatio -> Automatic, > ImageSize -> 700]; > but the Hues don't allow enough easily distinguishable > shades to visually recognize even 6 data values easily. > (I'm slightly colorblind.) The most humans can distinguish 160 gray levels >It would be nice to have black > and white available for two of the data values, but Hue > does not allow this. And something like: mycolor[i_] := > Switch[Round[i], > 0, RGBColor[0, 0, 0], > 1, RGBColor[1, 0, 0], > 2, RGBColor[1, 1, 0], > 3, RGBColor[0, 1, 0], > 4, RGBColor[0, 1, 1], > 5, RGBColor[0, 0, 1], > _, RGBColor[1, 1, 1]] Show[Graphics[ > Raster[Table[Random[Integer, {0, 6}], {16}, {16}], > ColorFunction -> mycolor, ColorFunctionScaling -> False]]] GRAY: Sounds good. I'll try it. Interesting that the help does not contain this in a form I could easily find. > 3. I wanted to get this raster image into a format > where I could dissect it with Photoshop or equivalent. And ? what does Export[] do ? it write the expression > in a desired format, TIFF, PNG, PPM are all lossless > compressed bitmap formats, that Mathematica can export > and that can be imported into PhotoShop GRAY: I foolishly thought something like Export would be under the File menu. > After much fooling around, I found that I can export the > selection as an html file, read it into Navigator, do File> > Edit Page, which brings up Netscape Composer, right > click the image which, allows saving it as a GIF, which > I can finally work on with a photo editor. Maybe > there is an easier way, or maybe this description will > help someone with the same need. GRAY: I just found that simply Copying the image and Pasting it into Paint Shop Pro (or no doubt lots of other bitmap editors) works. For outputting a Raster noninteractively, there is Export, but I haven't tried it yet. Jens, thank you for your reply. ==== explain to me why I get this behavior and what I can do to fix it. When I run Mathematica in X with the graphical user interface by typing mathematica, I can run the following commands and get the expected output, namely a plot with the plot label in a big font. However, when I run the math command and get the text interface and run the same code I do not get the label in a big font. cc = Plot[Sin[x], {x, 0, Pi}, {PlotLabel -> StyleForm[Label, FontSize -> 60]}] Export[test.eps, cc, eps] I believe that this is due to the different method in which the math and mathematica commands setup fonts. Is there anyway to get the behavior that I want? As a side note when I use the old syntax of cc=Plot[Sin[x],{x,0,Pi},{PlotLabel->FontForm[Label,{Courier,60}]}] I get it to work. However, I would like not to use this syntax as it has several limitations. Any suggestions would be greatly appreciated. ==== I have a dual processor Dell computer...unfortunately, I can only access one of the processors...I purchased Wolfram's parallel processing toolkit which , because of the very poor documentation, never did me any good...i'm told that another option for accessing the dual processors is to write C code etc...I can't C program, so i'm wondering this...duzz anyone have C code, both source and binary, that they could give me for accomplishing this....in addition, i would like to access this C code with JavaNativeCode, etc...can anyone help me with this? thanks... jerry blimbaum NSWC panama city, fl Reply-To: kuska@informatik.uni-leipzig.de ==== you can have a parallel implicit Runge-Kutta method programmed in C *and* with the Parallel Computing Toolkit both on the base of the MathLink protocol. Since I have a SGI I can't help you with the binary for a Dell what ever computer but if you like the source ... You can also have a native MPI source of the code but you will need a running MPI for your computer. Jens I have a dual processor Dell computer...unfortunately, I can only access one > of the processors...I purchased Wolfram's parallel processing toolkit which > , because of the very poor documentation, never did me any good...i'm told > that another option for accessing the dual processors is to write C code > etc...I can't C program, so i'm wondering this...duzz anyone have C code, > both source and binary, that they could give me for accomplishing this....in > addition, i would like to access this C code with JavaNativeCode, etc...can > anyone help me with this? thanks... jerry blimbaum NSWC panama city, fl ==== I have a set of inequalities that I solve with InequalitySolve. But then it gives a complete set of solutions, but not in the way I would like it to be! :-) For example, the simple following calculation will give: In[1]:= ineq = {y4 >= -1, y5 >= -1, y6 + y4 >= y5 - 1, y5 >= y6, y6 >= -1}; InequalitySolve[ineq,{y4,y6,y5}] Out[1]:= y4 == -1 && y6 >= -1 && y5 == y6 || y4 > -1 && y6 >= -1 && y6 <= y5 <= 1 + y4 + y6 the result is good, but I would like it to be in the simpler but equivalent form y4 >= -1 && y6 >= -1 && y6 <= y5 <= 1 + y4 + y6 How can I tell InequalitySolve to do that? It is simple for this example, but for a large set of simple inequalities InequalitySolve gives lines and lines of results instead of a simple result. Vincent Bouchard ==== f[c] == (c+b)/.ru[c] == (c+b)/.c->x == x+b == b+x Bobby Treat -----Original Message----- f[c] = b+c? What gives? Lawrence -- Lawrence A. Walker Jr. http://www.kingshonor.com ==== Sorry; disregard my earlier answer. ru[c] isn't defined, so that obviously wasn't the correct sequence of events. Here's the right one: f[c] == HoldPattern[(a+b)/.ru[a]]/.x->c == (a+b)/.ru[a] == (a+b)/.a->x == x + b == b + x The substitution of c for x occurs before the rule ru[a] is evaluated, so there's no x in the expression to replace. Instead, there's an 'a' to replace with x. If the other sequence had been correct, you have no rule for evaluating ru[c], so it would have remained just that -- ru[c]. When the kernel tried to apply it as a rule to (a+b), there would have been an error. That didn't happen, so that wasn't the sequence of events. Bobby Treat -----Original Message----- f[c] = b+c? What gives? Lawrence -- Lawrence A. Walker Jr. http://www.kingshonor.com ==== You really should read about the difference between := (SetDelayed) and = (Set). When you enter your definition f[x_]:=(a+b) /. ru[a] the right hand side is not evaluated. So next when you evaluate f[c] you get (a+b)/.ru[a] and only now ru[a] is evaluated, thus giving you (a+b)/.a->x which is b+x There are several ways to get what you want. One is to use = instead of :=, another to force evaluation of the right hand side with f[x_]:=Evaluate[(a+b) /. ru[a]] yet another to insert the actual rule in the definition of f: f[x_]:=(a+b) /. a->x Andrzej Kozlowski Toyama International University JAPAN On Wednesday, September 25, 2002, at 02:50 PM, Lawrence A. Walker Jr. For the life of me I am not sure why the following is not working in my > v. 4.2: ru[a]=a->x; > f[x_]:=(a+b) /. ru[a]; Why do I get > f[c] = b+x and not > f[c] = b+c? What gives? Lawrence -- > Lawrence A. Walker Jr. > http://www.kingshonor.com > ==== Well, I have written the following notebook with Mathematica In[78]:= a=Sqrt[4*Pi/Sqrt[3]] In[79]:= fcom[k_,mu_]:=(( 1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*(1-Exp[-I*k*(a-mu)])/(I*k)+ Exp[-I*mu*2* Pi/a]*((1-Exp[-I*(k+2*Pi/a)*(a-mu)])/(I*(k+2*Pi/a))+( 1-Exp[-I*(k-2*Pi/a)*(a-mu)])/(I*(k-2*Pi/a)))+ Exp[-I*mu*4* Pi/a]*((1-Exp[-I*(k+4*Pi/a)*(a-mu)])/(I*(k+4*Pi/a))+( 1-Exp[-I*(k+2*Pi/a)*(a-mu)])/(I*(k+2*Pi/a)))+( 1-Exp[-I*(k-2*Pi/a)*(a-mu)])/(I*(k-2*Pi/a))+( 1-Exp[-I*(k-4*Pi/a)*(a-mu)])/(I*(k-4*Pi/a)))/(3*a) In[80]:= f0[k_,mu_]:=((1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*(a-mu)+ Exp[-I*mu*2* Pi/a]*((1-Exp[-I*2*Pi/a*(a-mu)])/(I*(2*Pi/a))+( 1-Exp[-I*(-2*Pi/a)*(a-mu)])/(I*(-2*Pi/a)))+ Exp[-I*mu*4* Pi/a]*((1-Exp[-I*(4*Pi/a)*(a-mu)])/(I*(4*Pi/a))+( 1-Exp[-I*(2*Pi/a)*(a-mu)])/(I*(2*Pi/a)))+( 1-Exp[-I*(-2*Pi/a)*(a-mu)])/(I*(-2*Pi/a))+( 1-Exp[-I*(-4*Pi/a)*(a-mu)])/(I*(-4*Pi/a)))/(3*a) In[81]:= fp1[k_,mu_]:=(( 1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*(1-Exp[-I*2*Pi/a*(a-mu)])/( I*2*Pi/a)+ Exp[-I*mu*2*Pi/a]*((1-Exp[-I*(4*Pi/a)*(a-mu)])/(I*(4*Pi/a))+(a-mu))+ Exp[-I*mu*4* Pi/a]*((1-Exp[-I*(6*Pi/a)*(a-mu)])/(I*(6*Pi/a))+( 1-Exp[-I*(4*Pi/a)*(a-mu)])/(I*(4*Pi/a)))+( a-mu)+(1-Exp[-I*(-2*Pi/a)*(a-mu)])/(I*(-2*Pi/a)))/(3*a) In[82]:= fm1[k_,mu_]:=(( 1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*( 1-Exp[I*2*Pi/a*(a-mu)])/(-I*2*Pi/a)+ Exp[-I*mu*2*Pi/a]*((a-mu)+(1-Exp[-I*(-4*Pi/a)*(a-mu)])/(I*(-4*Pi/a)))+ Exp[-I*mu*4*Pi/a]*((1-Exp[-I*(2*Pi/a)*(a-mu)])/(I*(2*Pi/a))+(a-mu))+( 1-Exp[-I*(-4*Pi/a)*(a-mu)])/(I*(-4*Pi/a))+( 1-Exp[-I*(-6*Pi/a)*(a-mu)])/(I*(-6*Pi/a)))/(3*a) In[83]:= fp2[k_,mu_]:=(( 1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*(1-Exp[-I*4*Pi/a*(a-mu)])/( I*4*Pi/a)+ Exp[-I*mu*2* Pi/a]*((1-Exp[-I*(6*Pi/a)*(a-mu)])/(I*(6*Pi/a))+(1-Exp[-I*( 2*Pi/a)*(a-mu)])/(I*(2*Pi/a)))+ Exp[-I*mu*4* Pi/a]*((1-Exp[-I*(8*Pi/a)*(a-mu)])/(I*(8*Pi/a))+( 1-Exp[-I*(6*Pi/a)*(a-mu)])/(I*(6*Pi/a)))+( 1-Exp[-I*(2*Pi/a)*(a-mu)])/(I*(2*Pi/a))+(a-mu))/(3*a) In[84]:= fm2[k_,mu_]:=(( 1+Exp[-I*mu*2*Pi/a]+Exp[-I*mu*4*Pi/a])*( 1-Exp[I*4*Pi/a*(a-mu)])/(-I*4*Pi/a)+ Exp[-I*mu*2* Pi/a]*((1-Exp[-I*(-2*Pi/a)*(a-mu)])/(I*(-2*Pi/a))+( 1-Exp[-I*(-6*Pi/a)*(a-mu)])/(I*(-6*Pi/a)))+ Exp[-I*mu*4* Pi/a]*((a-mu)+(1-Exp[-I*(-2*Pi/a)*(a-mu)])/(I*(-2*Pi/a)))+( 1-Exp[-I*(-6*Pi/a)*(a-mu)])/(I*(-6*Pi/a))+( 1-Exp[-I*(-8*Pi/a)*(a-mu)])/(I*(-8*Pi/a)))/(3*a) In[85]:= Lp[0|N[0],mu_]:=f0[0,mu] In[86]:= Lp[2*Pi/a|N[2*Pi/a],mu_]:=fp1[2*Pi/a,mu] In[87]:= Lp[-2*Pi/a|-N[2*Pi/a],mu_]:=fm1[2*Pi/a,mu] In[88]:= Lp[4*Pi/a|N[4*Pi/a],mu_]:=fp2[4*Pi/a,mu] In[89]:= Lp[-4*Pi/a|-N[4*Pi/a],mu_]:=fm2[-4*Pi/a,mu] In[90]:= Lp[k_,mu_]:=fcom[k,mu] In[91]:= Ll[k_,mu_]:=0/;mu>=a In[92]:= Ll[k_,mu_]:=0/;mu<=-a In[93]:= Ll[k_,mu_]:=Lp[k,mu]/;0<=muMonteCarlo,MaxPoints->100000000,Compiled->False] but this is not enough to ensure convergence of the integration. Notice that I have inserted some points in the integration path in order to avoid problems with numerical divergences which Mathematica detects in fcom[k,mu] (but these divergences do not really exist, analitically) Does somebody has a smart suggestion to perform this computation? Fabio ==== In a presentation I wish to use Plot to generate a sequence of frames and then animate them. The problem is that the audience sees the animation twice. Once when the frames are being generated and then again after I have closed the group and double clicked on the top graphic. However, the first showing during generation is enough (but uncontrolled). Is it possible to tidy up the generation of the graphic so that it becomes the animation? I have tried the following Do[Plot[Sin[t]*Sin[x], {x, 0, Pi}, PlotRange -> {{0, Pi}, {-1, 1}}, ImageSize -> 400]; SelectionMove[EvaluationNotebook[], All, GeneratedCell]; FrontEndExecute[{FrontEnd`SelectionAnimate[0.1]}]; FrontEndExecute[{FrontEndToken[Clear]}], {t, 0, 15, 0.1}] This works but the cell dividing line flashes on and off spoiling the animation and if there is anything in the cell below this jumps up and down. Is there a proper way of doing this? Hugh Goyder ==== I need to program the following recursion scheme for time series forecasting (The Innovation Algorithm). I will write it in pseudo-Mathematica notation. K is the given m x m autocovariance (numerical) matrix of the process v[0] = K[[1,1]]; H[n,n-k] = (v[k])^(-1) (K[[n+1,k+1]] - Sum[(H[k,k-j] H[n,n-j] v[j]), {j,0,k-}]) for k=0,1,...,n-1 v[n] = K[[n+1,n+1]] -Sum[(H[n,n-j])^2 v[j],{j,0,n-1}] The scheme should be solved in the order v[0], H[1,1], v[1], H[2,2], H[2,1], v[2], H[3,3], H[3,2], H[3,1], ... I have already tried to program it in a straght-forward way, but as have no experience with recursive functions with two variables, it doesn't seem to work properly and is also very slow. Any help would be Robert Reply-To: murray@math.umass.edu ==== I don't understand the problem. Say I enter the 2D form for the reciprocal of the square root of a^2 + b^2, but I enter it in Standard Form (i.e., using the Control key with / to form the fraction, and the Control key with 2 to get the square root symbol). If then I click anywhere within the subexpression inside the square root, then with 2 to three clicks the entire expression under the square root will be highlighted. I can then do a copy-and-paste to put that into any cell, in the usual way -- with keyboard key combinations, right-click context menu, or Mathematica Edit menu. Isn't that GUI enough? Would you REALLY want to be able to DRAG the highlighted expression to a new place? Think of how much of a mess this could cause through inadvertent movement of the mouse after highlighting some subexpression. In fact, I hate Microsoft Word's doing just that! >I'm a poor physicist trying to figure out how to sort out the >physical from the non-physical solutions to a problem. To do >>that, I need to be able to look at an expression and pick out a >>subexpression, the part under the radical. > GRAY: > This points up the need, which I've been aware of for years, to be > able to select any part of an expression and drag it to a new line for > further processing. Mathematica and the other CAS I'm familiar with are still > pretty much stuck with a command line interface. They need a true > GUI with extensive interaction. > When I can see on the screen exactly what I want to do, why > should I have to type a bunch of stuff in to access what I want? > Maybe we'll see this in version 5? 6? Never? > -- Murray Eisenberg murray@math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street Amherst, MA 01375 ==== > I'm a poor physicist trying to figure out how to sort out the > physical from the non-physical solutions to a problem. To do > that, I need to be able to look at an expression and pick out a > subexpression, the part under the radical. GRAY: This points up the need, which I've been aware of for years, to be able to select any part of an expression and drag it to a new line for further processing. Mathematica and the other CAS I'm familiar with are still pretty much stuck with a command line interface. They need a true GUI with extensive interaction. When I can see on the screen exactly what I want to do, why should I have to type a bunch of stuff in to access what I want? Maybe we'll see this in version 5? 6? Never? Reply-To: murray@math.umass.edu ==== I get the same result in 4.2 (under Windows). Not sure why. But you could try this modification: PlaySeq[L_, dur_] := Do[PlayTone[L[[i]], dur]; Pause[dur], {i, Length[L]}] Then PlaySeq[{224, 256, 384}, 3] seems to work as expected, prolonging the notes before the last one to their full expected duration. > PlayTone[F_, dur_] := Play[Sin[2*Pi*F*t], {t, 0, dur}] > allows me to play a sine wave of frequency F and duration dur PlaySeq[L_, dur_] := Do[PlayTone[L[[i]], dur], {i, Length[L]}] should allow me to play a sequence of tones > with a given list of frequencies L > and all the same duration dur. It does not work at least in 4.1 all tones but the last one are much shorter than dur. any help? > -- Murray Eisenberg murray@math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street Amherst, MA 01375 ==== this is almost the solution. but it creates some artificial rests. when the sounds are created, there is some silence between the different notes. when after creation one clicks the play sound icon of the group with all the sounds, these rests disappear. is there a way of Play creating ghte waves, but NOT playing them, and then, doubleclicking the sound icon, hearing the sound without rests immediately? > I get the same result in 4.2 (under Windows). Not sure why. But you > could try this modification: PlaySeq[L_, dur_] := Do[PlayTone[L[[i]], dur]; > Pause[dur], {i, Length[L]}] Then PlaySeq[{224, 256, 384}, 3] seems to work as expected, prolonging the notes before the last one to > their full expected duration. >>PlayTone[F_, dur_] := Play[Sin[2*Pi*F*t], {t, 0, dur}] >>allows me to play a sine wave of frequency F and duration dur >>PlaySeq[L_, dur_] := Do[PlayTone[L[[i]], dur], {i, Length[L]}] >>should allow me to play a sequence of tones >>with a given list of frequencies L >>and all the same duration dur. >>It does not work at least in 4.1 >>all tones but the last one are much shorter than dur. >>any help? -- -- Erich Neuwirth, Computer Supported Didactics Working Group Visit our SunSITE at http://sunsite.univie.ac.at ==== PlayTone[F_, dur_] := Play[Sin[2*Pi*F*t], {t, 0, dur}] allows me to play a sine wave of frequency F and duration dur PlaySeq[L_, dur_] := Do[PlayTone[L[[i]], dur], {i, Length[L]}] should allow me to play a sequence of tones with a given list of frequencies L and all the same duration dur. It does not work at least in 4.1 all tones but the last one are much shorter than dur. any help? -- -- Erich Neuwirth, Computer Supported Didactics Working Group Visit our SunSITE at http://sunsite.univie.ac.at ==== using Set (=) instead of SetDelayed (:=) in f[x_]:=(a+b) /. ru[a]; will give you what you desire. Matthias Bode. -----UrsprĚ.b9ngliche Nachricht----- Gesendet: Mittwoch, 25. September 2002 07:51 An: mathgroup@smc.vnet.net Betreff: Strange ReplaceAll behavior For the life of me I am not sure why the following is not working in my v. 4.2: ru[a]=a->x; f[x_]:=(a+b) /. ru[a]; Why do I get f[c] = b+x and not f[c] = b+c? What gives? Lawrence -- Lawrence A. Walker Jr. http://www.kingshonor.com ==== If you want to do it with the mouse, it's not that difficult. I click within the part I want and double-click until the part is selected. (Each double-click expands the selection by one level of nesting.) Then push Ctrl-C, click where you want to put the result, and push Ctrl-V. Does that help any? Bobby -----Original Message----- able to select any part of an expression and drag it to a new line for further processing. Mathematica and the other CAS I'm familiar with are still pretty much stuck with a command line interface. They need a true GUI with extensive interaction. When I can see on the screen exactly what I want to do, why should I have to type a bunch of stuff in to access what I want? Maybe we'll see this in version 5? 6? Never? ==== I met a critical problem for running Mathematica 4.1 on MacOS X 10.2. (OSX native version) I hope such a problem is suitable to be posted to this ML. What happens is the following. When Mathematica 4.1 installed in HDD is started, a window quickly appears saying that A serious error has occured while Mathematica was starting up. Mathematica will probably not function properly until this problem is resolved. ... The Mathematica fonts are not properly installed in your system. Without these fonts, typeset mathematical expressions cannot be displayed properly. This message is correct. If I chose Continue Anyway, mathematical expressins are totally broken. What is strange is that when I start Mathematica 4.1 by double clicking Mathematica in CDROM, it works without any problem. Further more, Once Mathematica 4.1 is correctly started in this way, I can restart Mathematica directly from double clicking Mathematica in HDD, which is the installed one. Once CDROM is ejected, the error appears again. It is clearly font related problem but I do not know how to solve. If someone know how to manage, please let me know. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- I met a critical problem for running Mathematica 4.1 on MacOS X 10.2. (OSX native version) I hope such a problem is suitable to be posted to this ML. What happens is the following. When Mathem