Skip to content

Instantly share code, notes, and snippets.

@lopesivan
Created December 21, 2016 13:13
Show Gist options
  • Save lopesivan/570a894e920f258f09786912f41b692e to your computer and use it in GitHub Desktop.
Save lopesivan/570a894e920f258f09786912f41b692e to your computer and use it in GitHub Desktop.
Neopolys
v8.1
(c)APO
IMPORTANT !!!
THIS VERSION WORKS ONLY IN THE HP49G AND HAS BEEN TESTED
ONLY IN THE ROM VERSIONS 1.10 AND 1.14-2
( The definitive polynomial lib for de HP48-G, GX, and )
( now for the HP49G too )
( WITH LAPLACE AND Z TRANSFORMS )
Fist of all:
English is not my native language so I'd like to apologize for
the errors in this doc.
I'd like to thank all people who spend a moment of their life
sending me one or another comment about this lib or any other one.
THANKS !!!
THE FILES
=========
NeopV8x1esp.txt Spanish manual.
NeopV8x1eng.txt Just what you're reading now.
NeopV8x1.lib Library with Neopolys (v8.1)
WARNING !!
SOME COMMANDS HAVE IMPORTANT NOTES, PLEASE READ THEM.
INTRODUCTION
============
1. Polynomials can be represented:
a) by their coefs in descendant order of exponent, which can
be:
reals : { 2 0 4 -500 } = '2·x^3+x-500'
complexes : { (1,0) (3,-6) 2 }
symbolics : { '1/3' 6 '2*(A,B)' '4/(B+C)' A }
b) by their roots which can also be:
reals : { { 1 2 3 4 } }
complexes : { { (1,2) (3,4) 5 (6,0) } }
symbolics : { { A B (0,-2) 'COS(E)' '2*INV(F)' 4 } }
c) in any other case, the element at the corresponding level
is converted to a polynomial (single list with one coefficient).
For example:
2: 2 P+
1: 'X' ->->->->->->->-> 1: { 'X+2' }
NOTE:
If in the working directory or in upper directories
any variables with the same name that any variables which
may appear in the expressions of the polynomial coefs are
found, and if the content of that variable is a number or
an expression with numerical result, its value is conside-
red in the calculations instead of the symbolic variable
name.
Personally I've found this utility very useful because
it allows some interesting studies of the polynomials accor-
ding to the variation of their coefficients.
2. Polynomial fractions are represented with their numerator at
level 2 and their denominator at level 1.
3. All commands work with numeric or symbolic coefficients except
'Roots' which only works with numeric values or symbolic expres-
sions (as for example '3/4') that give numerical results, except
when working with polynomials with degree less or equal than 2
in which case it can return the symbolic roots of that polynomial.
4. Polynomial '0' is represented by a null list ( { } ), but you can
also enter another type of expressions like
{ 0 } or { (0,0) 0 0 '2*A-A-A' }
(choose the one you prefer).
5. The polynomial { { } } is considered as the null polynomial { }.
6. The result of the commands depends on the state of the next user
flags
flag When active
---- ------------------------------------
2 ........... Symbolic results are automatically simplified.
Simplifies polynomial fractions when posible.
Operations are slower mainly when working with
symbolics.
Some complicated expressions may not be entirely
simplified.
3 ........... After each operation the command XQ.
4 ........... This flag is used only by the '->Z' command.
When activated, the output of that command is
directly expressed as a polynomial fraction. When
not, it's expressed in an alternative form (See
'->Z' below).
You can activate or deactivate any user flag either typing
N SF -> set flag number N
N CF -> clear flag number N
Nevertheless the Neopolys command 'flgs' make easy the activation/
deactivation of user flags 2 and 3. Just pres 'flgs' and see.
THE COMMANDS
============
I think it's very obvious what each command does. Nevertheless
I've decided to explain each of them.
* P+ : Adds polynomials:
2: { 0 1 '3/4' } P+
1: '-3/4' ->->->->->->->-> 1: { 1 0 }
2: { { '3/A' (1,1) 0 } } P+,flg3,flg2 1: { 1 '(0,1)-3/A' '2
1: { 1 '2/3' (4,0) } ->->->->->->->-> /3+(3,3)/A' 4 }
* P- : Subtracts polynomials:
2: { 1 2 3 4 } P-,flg2 1: { '2+A+B+C' '3+(-B-
1: { { A B C } } ->->->->->->->-> C)*A-B*C''4+A*B*C'}
* P* : Multiplies polynomials:
2: { { 1 2 } } P* 1: { 1 -9 31 -51 40
1: { 1 -6 11 -6 } ->->->->->->->-> -12 }
* P/ : Divides polynomials:
2: { { A B 'C/3' } } P/,flg2 2: { }(remainder)
1: { { B 'C/3 } } ->->->->->->->-> 1: { 1 '-A'}(quotient)
* P^ : Polynomial to integer power (or to expression with integer
result):
2: { 1 '-A' } P^,flg2 1: { 1 '-(2*A)' 'A^2'
1: '(5*C-C)/(2*C)' ->->->->->->->-> }
2: { { 1 2 3 } } P^ 2: { 1 }
1: -2 ->->->->->->->-> 1: { 1 -12 58 -144 193
-132 36 }
NOTES:
Sometimes symbolic powers may not be completely simplified
and cause an error.
If you give a list at level 1 the first element of that list
is considered as the power.
* Pval : Evaluates polynomials using the Horner's method:
2: { 5 4 3 2 1 } Pval
1: (0,-1) ->->->->->->->-> 1: (3,2)
2: { { A B 1 } } Pval 1: '(1+C/3-1)*(1+C/3-B
1: '1+C/3' ->->->->->->->-> )*(1+C/3-A)'
Next commands (which work with polynomical fractions) consider
posible divides by zero. Remember that polynomial fractions requires
two levels, one for numerator and another one for denominator.
NOTE:
All commands that return polynomial fractions always return
two lists (although denominator is 1), EXCEPT IF THE RESULT IS ZERO,
IN WHICH CASE THEY RETURN JUST ONE NULL LIST AT LEVEL 1.
* F+ : Adds polynomial fractions.
4: { 1 2 }
3: { { 3 4 5 } } F+
2: { 6 7 A } ->->->->->->->-> 2: { 6 8 'A+2' }
1: { 1 -12 47 -60 } 1: { 1 -12 47 -60 }
* F- : Subtracts polynomial fractions.
4: 1
3: { 2 } F-,flg2,flg3
2: { { 3 } } ->->->->->->->-> 2: { '-1/4' '5/4' }
1: 4 1: { 1 }
If you have not understood the concepts of working with fractions
think that this example is the same that:
1 (s-3) (1/4)·s+(5/4)
--- - ------- = --------------- = (1/4)·s+(5/4)
2 4 1
* F* : Multiplies polynomial fractions.
* F/ : Divides polynomial fractions.
* F^ : Polynomial fractions to integer power. It allows the same kind
of symbolic expressions that P^ (see P^ above).
* Fval : Evaluates polynomial fractions.
* A->P : Converts an algebraic expression to its polynomial represen-
tation.
2: 'A*s^2+B/(3*s)' A->P 2: { 'A*3' 0 0 B }
1: 's' ->->->->->->->-> 1: { 3 0 }
NOTE:
Keep in mind that the symbolic expression can be fractional or
not, making the result be also fractional (two lists) or not (just
one list).
* P->A : Symbolic expression -> algebraic:
2: { A '1/3' (1,1) } P->A,flg3
1: 'z' ->->->->->->->-> 1: 'A*z^2+1/3*z+(1,1)'
2: { { 1 2 3 } } P->A 1: '(S+3)^3-6*(S+3)^2+
1: 'S+3' ->->->->->->->-> 11*(s+3)-6'
NOTE:
Giving a real or a complex value at level 1 you'll get the
value of the polynomial evaluated at that point.
* F->A : Polynomial fraction -> algebraic expression.
3: { { A B } } F->A
2: { 1 2 3 } ->->->->->->->-> 1: '(X^2+(-B-A)*X-B*-A
1: 'X' )/(X^2+2*X+3)'
3: { { 1 1 3 } } F->A
2: { { 1 2 } } ->->->->->->->-> 1: '(X^2-4*X+3)/(X-2)'
1: 'X'
* Pd : Derivative of a polynomial:
Pd,flg2
1: { { 1 1 '2/(A+B)' } ->->->->->->->-> 1: { 3 '2*(-2-2/(A+B))
} ' '1+4/(A+B)' }
* PS : Returns the primitive of the polynomial at level 1.
* Fd : Derivative of a polynomial fraction.
* Pcoef : Returns the coefficients of the polynomial whose roots are
given at level 1.
1: { { 'A+B' 2 '1/3' } Pcoef,flg3 1: { 1 '-7/3+(-A-B)' '
} ->->->->->->->-> 2/3-7/3*(-A-B)' '2/
3*(-A-B)' }
Pcoef,flg3
1: '2/3' ->->->->->->->-> 1: { 1 '-(2/3)' }
* Fsimp : Simplifies polynomial fractions.
2: { { 1 2 } } Fsimp 2: { 1 }
1: { 1 -6 11 -6 } ->->->->->->->-> 1: { 1 -3 }
2: { { A B } } Fsimp 2: { 1 }
1: { { A B } } ->->->->->->->-> 1: { 1 }
NOTE:
Simplification of polynomials with a lot of symbolic coefs
can spend a lot of time or hang.
* GCD : Calculates the greatest common denominator of 2 polynomials.
2: { { 0 (1,0) A } } GCD,flg2
1: { { 1 A } } ->->->->->->->-> 1: { 1 '-A-1' A }
2: { 1 2 3 4 5 } GCD
1: { 1 2 3 4 } ->->->->->->->-> 1: { 1 }
(there is no GCD)
* Roots : Returns the numeric roots of the polynomial at level 1, or
the symbolic one for polynomials with degree less or equal than 2.
Roots
1: { 1 -15 85 -225 274 ->->->->->->->-> 1: { { 1 2 3 4 5 } }
-120 }
1: { 1 '-(7/3)' '14/9' Roots,flg3 1: { { '1/3' '2/3' '4/
'-(8/27)' } ->->->->->->->-> 3' } }
NOTE:
I remember you that you can obtain SYMBOLIC roots for polyno-
mials whose degree is less or equal than 2 (lists with less than
4 elements).
You can also calaulate the polynomial roots for a polynomial
with symbolic coefs which gives numerical results. For example,
if you have stored the values 1, -3 and -12 y a variables at the
current directory or any directory upon it, with the names 'A',
'B' and 'C' respectively, you could do this:
Roots
1: { A '-A+3*B' '-A+B*C' ->->->->->->->-> 1: { { 1 2 3 4 } }
'3*C+4*B-2*A' '-2*C' }
This also would work if 'A', 'B' y 'C' were temporary varia-
bles in a program. For example, the next user-RPL program
<< 1 -3 -12 -> A B C
<<
'A'
'-A+3*B'
'-A+B*C'
'3*C+4*B-2*A'
'-2*C'
5 ->LIST
Roots
>>
>>
would also return the same that in the previous example:
1: { { 1 2 3 4 } }
* pf : Partial fraction decomposition.
The list at level 2 represents the coefficients that corres-
ponding the given root at the same position in the list at
level 1.
2: { 1 } pf 2: { '1/(A-B)' '1/(...
1: { { A B } } ->->->->->->->-> 1: { { A B } }
For multiple roots , the coefs given in the list at level 2
are sorted from lower to higher exponent of the corresponding
root, that is:
2: { { 1 2 } } pf 2: { 1 0 -1 -1 0 }
1: { { 1 2 1 2 1 } } ->->->->->->->-> 1: { { 2 2 1 1 1 } }
meaning:
(x-1)·(x-2)
----------------------------- =
(x-1)·(x-2)·(x-1)·(x-2)·(x-1)
1 0 -1 -1 0
= ------- + --------- + ------- + --------- + ---------
(x-2) (x-2)^2 (x-1) (x-1)^2 (x-1)^3
* flgs : Activates/deactivates flags 2 and 3 alternatively. For flag
4 use the form explained at the beginning of this doc, that
is, 4 CF (clears user flag 4) and 4 SF (sets user flag 4).
* DoLis : Applies the program at level 1 to the list at level 2:
2: { 1 2 3 4 5 } DoLis
1: << 1 + >> ->->->->->->->-> 1: { 2 3 4 5 6 }
NOTE:
This command now also works with symbolic matrices (list of lists)
and polynomials given by their roots.
2: { { '1/3' } { '2/4 } } DoLis
1: << ->NUM >> ->->->->->->->-> 1: { { 0.333333333333 }
{ .5 } }
2: { { 2 6 8 } } DoLis
1: << 2 / >> ->->->->->->->-> 1: { { 1 3 4 } }
* RevLis : Fast! reverse of the elements in a list.
RevLis
1: { 1 2 3 4 5 6 } ->->->->->->->-> 1: { 6 5 4 3 2 1 }
NOTE:
As the command above, DoLis, this one also works with symbolic
matrices and polynomials given by their roots.
RevLis
1: { { 1 2 } { 3 4 } } ->->->->->->->-> 1: { { 4 3 } { 2 1 } }
RevLis
1: { { 1 2 3 4 } } ->->->->->->->-> 1: { { 4 3 2 1 } }
* Q-> : This command is the inverse of '->Q'. It converts expressions
that have numerical and fractional terms to numbers. It is useful
when you've activated flag 3 to obtain fractional results and you
don't like the result because it contains fractions like '1234/5678'
or when you want to convert symbolic (with numerical result) ex-
pressions to numbers. Let's see:
Q->
1: { '1/3' 'A+2/5*B' } ->->->->->->->-> 1: { .333333333333 'A+
.4*B' }
Let be 'V' the square root and 'pi' the symbol that represents
the number pi (3.1415...), then if for example you executed Roots
and obtained the roots { { 'V3''pi' } }, you can apply Q-> to get
the numerical values
Q->
1: { { 'pi' 'V3' } } ->->->->->->->-> 1: { { 3.14159265359
1.73205080757 } }
It's also considered the posibility of the variables which
intervene in the expressions of the polynomial coefs to be in the
current directory or upper directories and that they contain num-
eric expressions. For example, try to create two variables in the
current directory, one called 'A' which contains the number 2 and
one called 'B' which contains '6/2' ( simply by entering
2 'A' STO
'6/2' 'B' STO
).
And now, with those variables created think about the result of
the next example:
Q->
1: { A 'A+B' 'A*B+C' } ->->->->->->->-> 1: { 2 5 '6+C' }
(A=2,B='6/2')
-o-o-
The next commands are only available when you install the file
.trn containing the commands to manage Laplace and Z transform.
* ->L : Returns the Laplace transform of expressions formed by combina-
tions of
· K (constant)
· t^n
· e^( a·t ± b )
· sin( a·t ± b )
· cos( a·t ± b )
· sinh( a·t ± b )
· cosh( a·t ± b )
NOTE:
Remember that expressions must be given in terms of 't'.
1: 'e^-t*COS(3*t+2)+2* ->L,DEG 2: { .999390827019 6....
e^-(2*t)*t' ->->->->->->->-> 1: { 1 6 22 48 40 }
->L,flg2 2: { 'COS(b)''-(2*SI...
1: 't*COS(a*t+b)' ->->->->->->->-> 1: { 1 0 '2*a^2' 0 'a^
4' }
* L-> : Returns the inverse Laplace transform of the polynomial frac-
tion given by the lists at levels 1 and 2 ( with numerator
greater than numerator ).
2: { 1 } L-> 1: '-(.5*e^-t*COS(t))+
1: { { (-1,1) (-1,-1) ->->->->->->->-> 0.5*e^-(2*t)+.5*t*e^
-2 -2 } } -(2*t)'
NOTE:
inverse Laplace transforms of hyperbolic functions are returned
with exponentials. Remember that
e^t - e^(-t)
sinh(t) = --------------
2
e^t + e^(-t)
cosh(t) = --------------
2
* ->Z : Due to the extensive use of Z transform calculations as from
functions in "s" (that is, as from Laplace transforms), this
command expects a polynomial fraction at levels 1 and 2 that
is the result of a Laplace transform.
Since Z transforms normally include exponentials which
depends on the sampling period , results can be composed by
very large and confused expressions . This is the main reason
that made me think about expressing the result in an alterna-
tive form. Thus depending on the state of user flag 4 you can
choose between obtain the fractional result or the alternative
one (if that flag is set or not respectively).
I don't know if you'll find the alternative form useful, it
really does for me.
Let's see it with an example
EXAMPLE
-------
If x(t) is
x(t)=1-t·e^(-t)
what will be its Z transform ?
-0-0-
SOL:
---
X(z) = Z[x(t)] = Z[x(kT)] = Z[1-kT·e^(-kT)]
To calculate this Z transform you enter '1-t·e^(-t)' at le-
vel 1 and do '->L' obtaining the corresponding Laplace trans-
form
2: { 1 1 1 }
1: { 1 2 1 0 }
which as explained in the '->L' command means
s^2 + s + 1
X(s) = L[x(t)] = -----------------
s^3 + 2·s^2 + s
and at this point you can do either:
a) set flag 4 and press '->Z', obtaining the whole
expression for the Z transform of X(s):
2: { 1 '-(T*e^-T)-2*e...
1: { 1 '-1-2*e^-T' 'e^
(-T-T)+2*e^-T' '-e^
(-T-T}' }
meanning:
z^3 + [-T·e^(-T)-2·e^(-T)]·z^2 + [T·e^(-T)+e^(-2T)]·z
X(z) = -----------------------------------------------------------
z^3 + [-1-2·e^(-T)]·z^2 + (e^(-2T)+2·e^(-T)]·z + (-e^(-2T))
Some people likes negative powers of z ... simply divide
both numerator and denominator by z^3 ...
Or
b) clear flag 4 and press '->Z', obtaining an alternative
form for the result:
2: { { 1 0 } { '-(T*e...
1: { { 0 1 } { '-T' 2
} }
meanning
z -T·e^(-T)·z
X(z)= ------------- + --------------- (*)
(z - e^0)^1 (z - e^(-T))^2
A A A A
That is, the lists contained in the list at level 2 are
polynomials in descendent order of z and represents the
numerators of the partial fraction decomposition. The
lists contained in the one at level 1 are in the form
{ X Y }
where X is the exponent which has to be applied to "e"
and then substracted to "z" to obtain an expression like
( z - e^X )
and Y is the power needed to obtain the whole expression
of the denominator, something like:
( z - e^X )^Y
( In (*) the A's mark X and Y for each term )
Do you understand? I think it's not too complicated and
after a bit of practicing with it you'll notice how much
useful this form is (at least it does for me).
Would you like to particularize the Z transform for a value
of the sampling period "T" ?
NO PROBLEM !!!
This command does it for you. Give it X(s)(like always in a poly-
nomial fraction but now at levels 2 and 3) and the real value of
the sampling period "T" at level 1, and it'll return back to you
the Z transform particularized for that period.
For example:
Once you've got X(s) in the form:
2: { 1 1 1 }
1: { 1 2 1 0 }
enter T at level 1.
E.g. ( for T = 0.5 seconds )
3: { 1 1 1 }
2: { 1 2 1 0 }
1: .5
And do '->Z' to obtain the Z transform.
Did you obtain the alternative form and you'd like to get the
whole one?
NO PROBLEM !!!
That's just what next command does:
* ->ND: Given a Z transform in the alternative form returns the whole
one.
Continuing with the previous example...
Once you've you the alternative expression
2: { { 1 0 } { '-(T*e...
1: { { 0 1 } { '-T' 2
} }
press '->ND' and you'll obtain the polynomial fractions at
levels 1 and 2 which represents the Z transform in its whole
form.
* Z-> : Returns the inverse Z transform of the polynomial fraction
(expressed in descendent (and positive) powers of z) given at
levels 1 and 2.
EXAMPLE
-------
To calculate the inverse Z transform of
z z^-1
X(z) = --------------- = -------------------
z^2 + 3·z + 2 1 + 3·z^-1 + z^-2
enter
2: { 1 0 }
1: { 1 3 2 }
and do 'Z->'. You'll get something like this:
1: (-1)^k-(-2)^k
that means that
x(k) = Z^-1[X(z)] = (-1)^k-(-2)^k
NOTES (for '->Z' and 'Z->' ):
* These two commands only works with polynomials WHOSE ROOTS HAVE
A MULTIPLICITY LESS OR EQUAL THAN 4 ( which is enough in most ca-
ses ).
NOTICE THAT IT DOESN'T MEAN THAT YOU CAN'T WORK WITH
POLYNOMIALS THAT ONLY HAVE FOUR COEFFICIENTS
* You can also play with user flag 2 to obtain more simplified
expressions.
* Don't forget that you can keep on using the current notation of
Neopolys for the polynomials passed to these commands.
For example: in the 'Z->''s example, you could have given
2: { { 0 } }
1: { { -1 -2 } }
and you'd have obtained the same result.
* To particularize Z transforms for a given T you could also use
the calculator 'MATCH's commands in combination with 'Dolis' ...
I'll let you think about it...
QUICK REFERENCE
===============
The next one is a summary of each of the commands implemented in
this version and all of their arguments and returns. If you have
never seen this kind of notation it's very simple to understand: the
terms to the left of the simbol "->->" represents the arguments
passed to the command and their order in the stack, and the one to
the right the results. For example:
P+ : (lrts,any) (lrts,any) ->-> list
( Stack level -> (2) (1) ->-> (1) )
means that the P+ command takes either a polynomial or any object at
level 2 ( position (2) ) and the same kind of arguments for level 1,
returning a polynomial at level 1.
The meaning of each simbol is:
list = A list with the coefficientes of a polynomial.
E.g.: { 1 2 3 4 }
roots = A double list with the roots of the polynomial.
E.g.: { { 1 2 3 4 } }
lrts = Any of the last two one.
E.g.: { 1 2 3 } or { { 1 2 3 } }
listlst = A list of lists (alternative form of '->Z')
E.g.: { { 1 0 } { 1 3 } }
simb = Simbolic expression.
E.g.: 'x^2+1/A'
simbn = Simbolic expression with numerical result:
E.g.: '1/3+2^3' ( = 8.3333... )
var = Variable name.
E.g.: 's'
num = Real or complex number.
E.g.: 1) 123
2) (1,-23.12)
proc = Procedure.
E.g.: << 2 * >>
any = Any object.
And the reference for each command is:
P+ : ADD POLYNOMIALS
(lrts,any) (lrts,any) ->-> list
P- : SUBSTRACT POLYNOMIALS
(lrts,any) (lrts,any) ->-> list
P* : MULTIPLIES POLYNOMIALS
(lrts,any) (lrts,any) ->-> list
P/ : DIVIDES POLYNOMIALS
(lrts,any) (lrts,any) ->-> list(resto) list(cociente)
P^ : POLYNOMIAL TO INTEGER POWER
(lrts,any) (num,simbn,list) ->-> list
Pval : EVALUATES POLYNOMIALS
(lrts,any) (num,simbn,simb,var) ->-> num
F+ : (lrts,any) (lrts,any) (lrts,any) (lrts,any) ->-> list list
( ó { } )
F- : (lrts,any) (lrts,any) (lrts,any) (lrts,any) ->-> list list
( ó { } )
F* : (lrts,any) (lrts,any) (lrts,any) (lrts,any) ->-> list list
( ó { } )
F/ : (lrts,any) (lrts,any) (lrts,any) (lrts,any) ->-> list list
( ó { } )
F^ : (lrts,any) (lrts,any) (num,simbn) ->-> list list
( ó { } )
Fval : (lrts,any) (lrts,any) (num,simbn,simb,var) ->-> num
A->P : ALGEBRAIC EXPRESSION TO POLYNOMIAL
(simb,num,var) var ->-> list
list list
P->A : POLYNOMIAL TO ALGEBRAIC EXPRESSION
(lrts,any) (var,num,simb) ->-> simb
F->A : POLYNOMIAL FRACTION TO ALGEBRAIC EXPRESSION
(lrts,any) (lrts,any) (var,num,simb) ->-> simb
Pd : DERIVES POLYNOMIALS
(lrts,any) ->-> list
PS : INTEGRATES POLYNOMIALS
(lrts,any) ->-> list
Fd : DERIVES POLYNOMIAL FRACTIONS
(lrts,any) (lrts,any) ->-> list list
{ }
Pcoef : POLYNOMIAL COEFFICIENTS GIVEN THE ROOTS
(roots,any) ->-> list
Fsimp : POLYNOMIAL FRACTION SIMPLIFICATION
(lrts,any) (lrts,any) ->-> list list
{ }
GCD : GREATEST COMMON DENOMINATOR
(lrts,any) (lrts,any) ->-> list
Roots : POLYNOMIAL ROOTS GIVEN THE COEFFICIENTS
(lrts,any) ->-> roots
pf : PARTIAL FRACTION DECOMPOSITION
(lrts,any) (lrts,any) -> -> list roots
flgs : USER FLAGS 2 AND 3 STATE CHANGING
->-> (modified state of user flags 2 and 3)
DoLis : APPLIES A PROCEDURE TO EACH POLYNOMIAL COEF
(lrts,listlst) proc ->-> (lrts,listlst)
RevLis : REVERSE LISTS
(lrts,listlst) ->-> (lrts,listlst)
Q-> : CONVERTS NUMERICAL FRACTIONS AND NUMERICAL EXPRESSIONS TO NUMBERS
REPLACING THE CONTENTS OF NUMERIC VARIABLES LOCATED IN THE CURRENT
OR UPPER DIRECTORIES
(lrts,listlst) ->-> (lrts,listlst)
->L : LAPLACE TRANSFORM
symb(in terms of t) ->-> list list
{ }
L-> : INVERSE LAPLACE TRANSFORM
(lrts,any) (lrts,any) ->-> symb
->Z : Z TRANSFORM
lrts lrts ->-> listlst listlst (flag 4 not set)
->-> list list (flag 4 set)
lrts lrts num(real) ->-> listlst listlst (flag 4 not set)
->-> list list (flag 4 set)
Z-> : INVERSE Z TRANSFORM
(lrts,any) (lrts,any) ->-> symb
->ND : ALTERNATIVE EXPRESSION TO WHOLE EXPRESSION
listlst listlst ->-> list list
THE AUTOR
=========
I would be very glad if you send me any comment about the library
or about possible bugs that you can find when using this lib. You can
find me at
[email protected]
FINAL NOTE
==========
There is a library called Bode-Routh which allows you to make Bo-
de plots, Nyquist, root locus, etc... That library uses Neopolys to
work and is available at the same locations that Neopolys so you can
find it easily if you are reading this document now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment