- From: matt.halstead at auckland.ac.nz (Matt )
- Subject: [cellml-discussion] Representing derivatives in plain-text content MathML input languages
- Date: Mon, 20 Nov 2006 15:31:47 +1300
As a side note, here are the links to the matlab symbolic toolbox -
http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/
http://www.mathworks.com/products/symbolic/demos.html
look at the documentation on differential equations, Creating Symbolic
Variables and Expressions , and Several Differential Equations
On 11/20/06, Andrew Miller <ak.miller at auckland.ac.nz> wrote:
>
Hi all,
>
>
I have been developing a plain-text input language for the content
>
MathML in CellML documents (so that it can be efficiently edited by users).
>
>
I am seeking opinions on the best way to represent derivatives
>
(including partials) in the input language.
>
>
I have discussed this with the CellML team at the meeting today, and
>
several options were suggested. I would welcome opinions on which of
>
these options is the best, and I would also be keen to hear if you can
>
think of another different but better representation in input languages.
>
>
All examples refer to the representation of the following content MathML:
>
<apply><eq/>
>
<apply><diff/>
>
<bvar><ci>t</ci></bvar>
>
<ci>x</ci>
>
</apply>
>
<ci>y</ci>
>
</apply>
>
>
Option one:
>
Representation: diff(x, t) = y.
>
Advantages:
>
* Succinct.
>
* Follows the same syntax as functions in the rest of the language,
>
so makes it less complex and easier to understand.
>
* Easily generalises to partial differentials by replacing diff with
>
partialdiff or pdiff.
>
Disadvantages:
>
* Non-obvious to new users: does diff mean differential, difference, ...?
>
* It is unclear to the user what the ordering of x after t means,
>
i.e. which is the bound variable, so you just have to remember that the
>
second 'argument' is the bound variable.
>
>
>
Option two:
>
Representation: deriv(x, t) = y
>
Similar advantages as option one, but also:
>
Advantages:
>
* Slightly less potential for confusion.
>
Disadvantages:
>
* Slightly longer.
>
>
Option three:
>
Representation: differential(x, t) or derivative(x, y)
>
Similar advantages as option one, but also:
>
Advantages:
>
* Clearer meaning.
>
Disadvantages:
>
* Longer. UIs could simplify input of this by tab-expansion or
>
type-ahead features.
>
>
Option four:
>
Representation: d(x)/d(t)
>
Advantages:
>
* Similarity to Leibniz notation (arguably more clear meaning)
>
* Clear distinction between the bound variable and the expression that
>
the differential is being applied to.
>
Disadvantages:
>
* Syntax is inconsistent with the rest of the grammar.
>
* It incorrectly suggests that differentials could be moved around,
>
while in reality it is a limited syntax for derivatives.
>
* Extending it to partial differentials could look messy and
>
confusing, e.g. del(x)/del(t) .
>
>
Any opinions are welcome.
>
>
Best regards,
>
Andrew Miller
>
>
_______________________________________________
>
cellml-discussion mailing list
>
cellml-discussion at cellml.org
>
http://www.cellml.org/mailman/listinfo/cellml-discussion
>
Archive powered by MHonArc 2.6.18.