Re: Crash course in Mathematica syntax reqd

*To*: mathgroup at smc.vnet.net*Subject*: [mg20269] Re: Crash course in Mathematica syntax reqd*From*: "Seth Chandler" <Schandler at uh.edu>*Date*: Sun, 10 Oct 1999 01:27:27 -0400*Organization*: University of Houston*References*: <7tl0f3$413@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

I don't mean to be rude, but your problem is not ignorance of Mathematica syntax or alleged deficiencies in the Mathematica book, but your failure to understand at all how Mathematica works. Mathematica is not analogous to Java or Pascal in the way that Italian is similar to Spanish. It is a very different programming paradigm. You need to spend some time going up the learning curve. There are a number of excellent books on the subject, with varying levels of complexity. I might recommend the Gaylord book on programming in Mathematica. if you've got a short run programming problem for homework and you need to use some sort of procedural code such as that shown below, I would stick with C or whatever else you know. Kai G. Gauer <gauer at sk.sympatico.ca> wrote in message news:7tl0f3$413 at smc.vnet.net... > All to be found in one input line (it should run in a similar coding > environment such as Fortran or C). For instance, we should actually be > inputting the a, b values after the program is "compiled" and then "run" > the main code from outside of the text editor as an executable (though > for this code it doesn't really matter so much). Yes, I've used Java and > Pascal before, but I've never really put Mathematica 3.0 to work as a > text editor for a programming language that, when compiled, would > execute as a C code, etc. I don't have any compilation devices at home > (except for Mathematica's capabilities) and I don't intend to spend > extra cash on a new compiler program yet. The prof says any high-level > language is acceptable to write this following bisection method of > e^(10(1-x))-1 = f[x] where |f|<1/10 in; I assume that Mathematica > fulfills his req's. I have to print the nth value and the value of f > after the nth iterate satisfying the above. > > A few of my more prominent questions are: (i) Who has some better > documentation than the Mathematica handbook of writing compound > statements? Do I do as in other languages and write For > [i=1,i<5,{multiple amount of statements},i++]; > etc.. > (ii) > What is the equivalent of a Repeat {blah} Until {blahblah}; loop > (simplest Mathematica version please)? My personal favorite type of > loop! > (iii) > Where can I find some nice simple cut and paste loop button functions > (with the tab boxes) for general program writing? (two-fingered typist > syndrome) > (iv) > How do I best (or easiest) write the program first, then make it look > like it's compiled itself, then go outside of the In[1] statement and > ask for any old values? (as though the output didn't depend on the > input). I don't really want to use Eval[%,a->1,b->2] or similar. It > should be recognizable in almost any program language and yet run at the > same time. > (v) > what is the equivalent of variable type declaration, "double" in > Mathematica? I don't "want" Mathematica to calculate with 200 decimals; > the marker prefers to see the type of variable declared in advance. I > don't think he understands that N[%,8] is "equivalent" to double. > > > (** Please do nt submit a fully repaired solution if I'm going in a > completely wrong direction in terms of setting up the algorithm; I'm > only worried about the Mathematica syntax, etc, which seems to behave a > little bit more unusually than other languages. A crash course in > learning the Mathematica syntax, preferably before this weekend, would > be highly appreciable. You may assume that I've programmed in high-level > languages before, but never have formally used Mathematica as a > programing language in this sense. Most of my usage of Mathematica has > been for built-in function calculation such as plot for math. No, I'm > not asking you to do my HW either, as I don't lose marks for bad > Mathematica syntax! The output of this program is nothing for an outln > statement. p[1] gives1.05 after asking for it, but p2 won't iterate upto > a better value. Furthermore, While doesn't seem to want to hit its print > statement. Oh yeah, and n=100 is just a dummy value to keep the loop > going. I hope I've read the part on compound statements properly (ie) > when I can use ";" and when I can use ","....can I use {} also? > > > (a = 0.1; > b = 2; > For[n = 1, n < 100, p[n_] = a + (b - a)/2; > f[p[n] _] = E^(10(1 - p[n])) - 1; > While[Abs[f[p[n]]] >= 10^(-1), > Print[n, p[n]] > ]; > If[f[a] f[b] > 0, > a = p[n]; > f[a] = f[p[n]] > ]; > If[f[a] f[b] <= 0, b = p[n] > ], > (n++) > ) > >