Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Re: Re: Request for Mathematica Programming help.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg36963] RE: [mg36920] Re: [mg36893] Re: Request for Mathematica Programming help.
  • From: "DrBob" <drbob at bigfoot.com>
  • Date: Thu, 3 Oct 2002 00:17:02 -0400 (EDT)
  • Reply-to: <drbob at bigfoot.com>
  • Sender: owner-wri-mathgroup at wolfram.com

I think, for input of that many numbers (and other inputs), I might use
an input file that has textual names or descriptions in the first ten or
twenty columns, followed by values starting at a fixed column after
that.  Mathematica or Java could easily read inputs from that, and a
human could read it as well.  If you're concerned that a human might
jumble the file format -- accidentally deleting lines, etc. -- a program
could key on the names or descriptions rather than trusting them to be
in correct order, and point out missing values.  A strategy like that
allows you to start with a previous input file (not from scratch) and
change only what needs to change.

Also, Mathematica 4.2 adds XML support to the picture, and that might be
useful.

Bobby

-----Original Message-----
From: Hermann Schmitt [mailto:schmitther at netcologne.de] 
To: mathgroup at smc.vnet.net
Subject: [mg36963] [mg36920] Re: [mg36893] Re: Request for Mathematica Programming
help.

See my comments in the following text!
Hermann Schmitt
----- Original Message -----
From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
To: mathgroup at smc.vnet.net
Subject: [mg36963] [mg36920] [mg36893] Re: Request for Mathematica Programming
help.


> Hi,
>
> > I agree with Mr. Kuska, that the system Mr Nagesh describes is not
> > userfriendly. But I think, the suggestions of Mr. Kuska do not make
it
more
> > userfriendly, rather the opposite is true.
> >
> > Mr. Nagesh asks
> >
> > "Is any body here have expertise or information about the capability
of
> > Mathematica as a system simulation tool?"
> > Mr. Kuska answers:
> > "Since the most "system simulation tools" are simply solving a
system of
> > ordinary differntial equations it is simple to do this with
NDSolve[]."
> >
> > My comment:
> >
> > That is: He sees the simulation system merely as a set of
differential
> > equations.
>
> hmm, since the original poster write
>
> "My refrigeration system simulation package is likely to have
>  approximately 60 First order Differential equations."
>
> it seems not completly wrong to assume that the system consists of
> of ode's ..
>
Yout should not ignore the word "merely".
It is not enough to have a set 60 differential equations and a set of
200-250 numbers. That is not simulation system, which can be used by
users
with the exception,  perhaps, of the programmer of the system himself.
How does e.g. the user know what meaning a number in the set has, ought
he
count the numbers from the beginning?
Your nice command shows only, if there is an input, which is not a
number.
But I think the user would like to know, which of the 200 elements are
not
numbers.
The only good of your command is, that it looks nice and shows your
knowledge!

> >
> > The question of Mr. Nagesh:
> >
> > "My 4th Objective:- How can I program the check for correctness of
the
> >  input values supplied by the package user ?"
> > The answer of Mr. Kuska is:
> > "And @@ (NumericQ /@  {aListOfAllYourNumericParameters})"
> >
> > My comment:
> >
> > This is a nice command and shows the knowledge of Mr.Kuska. But does
Mr.
> > Nagesh understand it and  is it sufficient to check, if all inputs
are
> > numerical?
>
> It seems you have a deeper knowlege about the things that Mr. Nagesh
> understand. You know him personally ? It is not very polite to
> make speculations *what* a other person understand.
>
> And "no" it is not sufficent to check that all parameters are numbers.
> Typical paramters described by intervals, where the assumptions of
> a model are valid. But for this checks one needs more knowlege
> about the meaning of the parameters. And one needs the knowlege about
> the differntial equations, to find out the eigenvalues of the jacobian
> ...
>
> >
> > Additionally I think, it is not userfriendly to see the input merely
as
a
> > set of 200-250 numbers.
> >
> > My suggestion is, that JLink is used, a suggestion Mr. Kusk takes
into
> > consideration, too.
>
> That will be fast as lightning !
>
> >
> > But further I suggest, that classes are defined in Java, which
represent
the
> > parts of the system.
>
> That is notable nonsense! When the differntial equations should be
> solved with Mathematica, the parts can't be Java classes.
Mathematica's
> NDSolve[] need a explicit expression to integrate the equations.
That's not nonsense, the Mathematica program does not fetch the classes
but
the numbers in the classes (or better in the objects).
In a further email, I even propose to store the differential equations
in
the Java classes in textform. They can then be fetched from the
Mathematica
program and transformed into expressions by the Command "ToExpression".
The aim is, to have a clear separation of the system into components,
which
are manageable and understandable.

>
> OK you can call a Java class member from Mathematica but this will
> be incredible slow when the right hand side is evaluated 200-300
> times and every evaluation make several callbacks to the Java source.
> More overer I'm not sure that the Mathematica Kernel can call the
> Event handler of the Java main program (without some modification in
> the event loop) while it is evaluating an other command.
My idea is to fetch the values once from the Java objects at the
beginning.
200-250 numbers is not so much..
>
> >
> > Constructors of the classes should build objects with default
values.
>
> That's a great idea. If a simulation run should be documented, one
> always
> need the full listing of the Java source to find the actual parameter
> settings.
That is not my opinion. I think not every user of the simulation system
should have to know Java and Mathematica.
The user must look for the values in the objects. And the values are in
the
objects, if they come from the constructor or from the graphical user
interface.
I think, there should be listings of the objects including names of the
variables.
 In the objects  the values are in an meaningful environment.
>
> > Graphical user interfaces
> > should give the opportunity to change the data fields in the objects
and
> > check the input for correctness.
>
> *and* what has a GUI for 200-250 variables to do with Mathematica ?
> BTW one has typical much less variables because many parameters
> are fixed and it make no sense to change, for example, material
> constants of materials that can't exchanged
>
> >
> > The system should give the opportunity, to store the objects on
harddisk
> > (serialization).
> >
> > accessed directly.
> >
>
> Can you be so kind, to explain *how* your posting help a person that
> ask "How can I build a simulation system with Mathematica" ?
>
> You *can* say "Don't use Mathematica, use Java!" but this has nothing
> to do with the question or with my reply.
It is you, who proposes to solve the problem with C/C++ and not to use
Mathematica (see below!)
My point of view is:
Use Mathematica, for what Mathemtica is good, and Java, for what Java is
good.
Mathematica is not so good as Java for data entry and Java is better
than
Mathematica to represent the simulation system (by objects).
>
> But I still would suggest to use C/C++ and a numerical
> ode-solver, make a fancy GUI/Script
> interface and don't use Mathematica for such a simple task.
> The ode-solver is the smallest part of such a simulation system.
>
> Regards
>   Jens
>
> > > Hi,
> > >
> > >
> > >
> > > > My name is Nagesh and pursuing research studies in
Refrigeration. At
> > > > present I am writing a Dynamic Refrigeration System Simulation
Package.
> > I
> > > > am using Mathematica as a programming language for the same
since
last
> > one
> > > > year. I don't have any programming experience before this. I
have
> > following
> > > > querries:-
> > > > 1. Is any body here have expertise or information about the
capability
> > of
> > > > Mathematica as a system simulation tool?
> > >
> > > Since the most "system simulation tools" are simply solving a
system
of
> > > ordinary differntial equations it is simple to do this with
NDSolve[].
> > >
> > > > 2. Is is possible to program a user friendly interface for my
system
> > > > simulation package with Mathematica or I have to use some other
> > software?
> > >
> > > Write a MathLink or J/Link frontend that launch the kernel. But
you
> > > should keep
> > > in mind that the user interface is typical 80-90 % of your code.
> > > If you just whant to solve some ode's it is probably easyer to
> > > include one of the excelent ode-solvers from netlib in your C-code
> > > than to call Mathematica to do that. As long as you dont wish to
change
> > > the ode's very often (than Mathematica is more flexible) you
should
> > > not use Mathematica.
> > >
> > > > 3. My refrigeration system simulation package is likely to have
> > > > approximately 60 First order Differential equations. Is is
possible
to
> > > > solve these in Mathematica ?
> > >
> > > Sure.
> > > > If yes then can anybody here guide me about
> > > > this further.
> > >
> > > Write down the equations and call NDSolve[].
> > >
> > > >
> > > > I am explaining below in short about the objectives I want to
fulfill
> > from
> > > > coding out of my main input file
> > > >
> > > > 1. Example from Main Input File ( this will contain about
200-250
> > variables
> > > > which will be entered by the user of this package)
> > >
> > > This sounds like a *very* userfiendly interface ;-)
> > >
> > > >
> > > > Below is examples of two variables entered into this file, which
will be
> > > > used in other analysis files for further evaluation.
> > > >
> > > > 2. Example from other analysis file ( there will be about 20-25
other
> > such
> > > > component analysis files ) where the above mentioned variables
from
main
> > > > input file will be used for further evaluations:-
> > > >
> > > > Below is one example from this file explaining how the variables
from
> > main
> > > > input file will be used in other files.
> > > >
> > > > I hope that this short information will be useful for guiding me
to
> > solve
> > > > the following problems that I am facing. I am facing follwing
problems
> > or
> > > > objectives:-
> > > >
> > > > 1. My 1st Objective:- The user of this package must be able to
change
> > only
> > > > the value of the variable in the main input file but he must not
be
able
> > to
> > > > change the name of the variable itself. For example he must be
able
to
> > > > change the value of the variable "  " but he must not be able to
change
> > the
> > > > name of this variable itself.
> > > > Here our problem is how to achieve or program it so that our
objective
> > will
> > > > be fullfilled.
> > >
> > > Options with defaulf values ? or something like
> > >
> > > {aParam,bParam}={ODEParameter1,ODEParameter2} /.
> > >                        userRules /.
> > >                        {ODEParameter1->1,ODEParameter2->2}
> > >
> > > >
> > > > 2. My 2nd Objective:- How I can program the main input file so
that
it
> > will
> > > > be user friendly in terms of its visuals and satisfying the
constraint
> > > > mentioned above in objective1.
> > >
> > > What is *userfiendly* in a file with 250 variables ???
> > >
> > > >
> > > > 3. My 3rd Objective:- How can I program the optional values for
each
> > > > variable in the main input file ? so that there will be always a
value
> > > > assigned to each variable listed in main input file whenever the
user
> > opens
> > > > up this file. If user want to change the values of some
variables
then
> > he
> > > > can change them and run the simulation otherwise the simulation
run
will
> > be
> > > > done with optional values assigned to each variable in the input
file.
> > >
> > > See above.
> > >
> > > >
> > > > 4. My 4th Objective:- How can I program the check for
correctness of
the
> > > > input values supplied by the package user ?
> > >
> > > And @@ (NumericQ /@  {aListOfAllYourNumericParameters})
> > > >
> > >
> > > Regards
> > >   Jens
> > >
>






  • Prev by Date: Re: Loss of precision when using Simplify
  • Next by Date: RE: Sum of 1/Primes
  • Previous by thread: Re: Request for Mathematica Programming help.
  • Next by thread: Examples of Safe File Handling