Texas Instruments TI-89 Calculator User Manual


  Open as PDF
of 1008
 
852 Appendix A: Functions and Instructions
part(
expression1
,
n
)
expression
Simplifies
expression1
and returns the
n
th
argument
or operand, where
n
is > 0 and the number of
top-level arguments or operands returned by
part(
expression1
). Otherwise, an error is returned.
part(cos(pùx+3),1) ¸ 3+pøx
Note: Simplification changed the order of the
argument.
By combining the variations of
part(), you can
extract all of the sub-expressions in the simplified
result of
expression1
. As shown in the example to
the right, you can store an argument or operand
and then use
part() to extract further sub-
expressions.
Note: When using
part(), do not rely on any
particular order in sums and products.
part(cos(pùx+3)) ¸ 1
part(cos(
pùx+3),0) ¸ "cos"
part(cos(
pùx+3),1)!temp ¸
3+
pøx
temp
¸ pøx+3
part(temp,0)
¸ "+"
part(temp)
¸ 2
part(temp,2)
¸ 3
part(temp,1)
!temp ¸ pøx
part(temp,0)
¸ "ù"
part(temp)
¸ 2
part(temp,1)
¸ p
part(temp,2)
¸ x
Expressions such as (x+y+z) and (xìyì z) are
represented internally as (x+y)+z and (xìy)ìz.
This affects the values returned for the first and
second argument. There are technical reasons
why
part(x+y+z,1) returns y+x instead of x+y.
part(x+y+z) ¸ 2
part(x+y+z,2)
¸ z
part(x+y+z,1)
¸ y+x
Similarly, xùyù z is represented internally as
(xùy)ùz. Again, there are technical reasons why
the first argument is returned as yøx instead of
xøy.
part(xùyùz) ¸ 2
part(x
ùyùz,2) ¸ z
part(x
ùyùz,1) ¸ yøx
When you extract sub-expressions from a matrix,
remember that matrices are stored as lists of lists,
as illustrated in the example to the right.
part([a,b,c;x,y,z],0) ¸ "{"
part([a,b,c;x,y,z])
¸ 2
part([a,b,c;x,y,z],2)
!temp ¸
{x y z}
part(temp,0)
¸ "{"
part(temp)
¸ 3
part(temp,3)
¸ z
delVar temp
¸ Done
The example Program Editor function to the right
uses
getType() and part() to partially
implement symbolic differentiation. Studying and
completing this function can help teach you how
to differentiate manually. You could even include
functions that the cannot differentiate, such as
Bessel functions.
:d(y,x)
:Func
:Local f
:If getType(y)="VAR"
: Return when(y=x,1,0,0)
:If part(y)=0
: Return 0
¦ y=p,ˆ,
i
,numbers
:part(y,0)
!f
:If f="
L" ¦ if negate
: Return
ëd(part(y,1),x)
:If f="
" ¦ if minus
: Return d(part(y,1),x)
ìd(part(y,2),x)
:If f="+"
: Return d(part(y,1),x)
+d(part(y,2),x)
:If f="
ù"
: Return part(y,1)
ùd(part(y,2),x)
+part(y,2)
ùd(part(y,1),x)
:If f="{"
: Return seq(d(part(y,k),x),
k,1,part(y))
:Return undef
:EndFunc