Escolar Documentos
Profissional Documentos
Cultura Documentos
*** ecuaciones con nmeros reales en calculadoras HP49g, HP48gII, HP49G+ y HP50G.
*** Esto ha sido escrito para Debug 4x.
xNAME MSLV2
:: CK4&Dispatch
# 4441
:: RunSafeFlags
:: ' MSLV2_2
TOTEMPOB
FLASHPTR CASFLAGEVAL
;
;
;
NULLNAME MSLV2_2
::
BINT72 SetSysFlag
DUP %1 %< OVER %0> AND NcaseSIZEERR
4UNROLL
( %er Meq
Mid
Mvi )
( %er Meq
( %er Meq
Mid
Mid
Mvi )
Mvi )
FLASHPTR
FLASHPTR
FLASHPTR
FLASHPTR
(
(
(
(
Mid
Mid
Mid
Mid
Mvi )
Mvi )
Mvi )
{}vi )
XNUM
ARRAY2MATRIX
2DMATRIX? caseSIZEERR
MATRIX2LIST
3PICK LENCOMP
2DUPSWAP
LENCOMP
#=
NcaseSIZEERR
DUP
4PICK
LENCOMP
#=
NcaseSIZEERR
(
(
(
(
(
(
(
(
(
(
%er
%er
%er
%er
%er
%er
%er
%er
%er
%er
3PICK
FLASHPTR MATRIX2LIST
Check{}ID_SORT
FLASHPTR COMPRIMext
5PICK
FLASHPTR LIDNText
ROMPTR 0E8 016
EQUAL NcaseSIZEERR
Meq
Meq
Meq
Meq
Meq
Meq
Meq
Meq
Meq
Meq
%er
%er
%er
%er
Mid
Mid
Mid
Mid
Mid
Mid
Mid
Mid
Mid
Mid
Meq
Meq
Meq
Meq
{}vi
{}vi
{}vi
{}vi
{}vi
{}vi
{}vi
{}vi
{}vi
{}vi
#eq
#eq
#eq
#eq
#eq
#eq
#eq
#eq
#eq
#eq
)
#eq {}vi )
#eq #vi )
flag )
)
#eq )
#eq Mid )
#eq #id )
flag )
)
( %er Meq
( %er Meq
( %er Meq
Mid
Mid
Mid
( %er Meq
Mid
( %er Meq
Mid
{}vi #eq )
(
(
(
(
{}lam
{}lam
{}lam
{}lam
%er
%er
%er
%er
Meq
Meq
Meq
Meq
Mid
Mid
Mid
Mid
{}vi
{}vi
{}vi
{}vi
#eq
#eq
#eq
#eq
)
{}vi )
%X1 ... %Xn {}lam )
)
#eq )
LAM1 )
CLEARLCD
1GETLAM #1+_ONE_DO (DO)
"Hallando derivadas\0Ade la funcin " INDEX@ #>$ &$ %1 DODISP
4GETLAM
INDEX@ NTHCOMPDROP ( symb_Eq_i )
3GETLAM ( symb_Eq_i Mid )
FLASHPTR DERIVext ( VECTOR MATRICIAL DERIVADAS DE Fi RESPECTO A TODAS LAS VARIABLES )
"Reemplazando y simplificando\0Aderivadas de la funcin " INDEX@ #>$ &$ %1 DODISP
INNERCOMP
DUP ZERO_DO (DO)
ROLL
SYMB_ID->::_LAM
ISTOP@
LOOP
DROP
4GETLAM INDEX@ NTHCOMPDROP
SYMB_ID->::_LAM
LOOP
1GETLAM DUP#1+ #* {}N ( {}::deriv )
1PUTLAM
"FOROACTIVO dice:\0A\0AVariables y Error relativo:" %1 DODISP
( {%n %m} {}lam %er Meq
{}id {}vi {}::deriv )
( LAM7
LAM6 LAM5 LAM4 LAM3 LAM2 LAM1
)
2GETLAM ( {}vi )
BEGIN
?ATTNQUIT ( {}vi )
1GETLAM ( {}vi {}::deriv )
INNERCOMP
DUP ZERO_DO (DO)
ROLL EVAL ISTOP@
LOOP
DROP 7GETLAM FLASHPTR XEQ>ARRY ( {}vi ARRY_aumentado )
FLASHPTR 3 4F
!MATTRNnc
FLASHPTR ArryToList
FLASHPTR LASTCOMP ( {}vi {}delta )
OVERSWAP
{%}- ( {}vi {}vf )
DUP
6GETLAM STO{}
( {}vi {}vf )
DUP {%}NORMA
( {}vi {}vf %vf )
ROT {%}NORMA
( {}vf %vf %vi )
2DUP %= ITE
:: 2DROP%0_ 2PUTLAM TRUE ;
:: SWAP
( {}vf %vi %vf )
( DUP %0= IT SWAP )
%/ %1- %ABS ( {}vf %abs ) DUP 2PUTLAM
OVER DO>STR "\0A" &$
OVER DO>STR &$
5GETLAM ( {}vf %abs FLASHPTR RCLEPS )
%> NOT ( {}vf flag )
;
UNTIL
4GETLAM
3GETLAM
ROT FLASHPTR LIST2MATRIX
2GETLAM
ABND
ABND
SetDA1Temp
;
*** DEVUELVE LA NORMA DE UN VECTOR: RAIZ(a1^2+a1^2+...+an^2)
*** PERO EL VECTOR DEBE ESTAR COMO LISTA O COMO VECTOR SIMBOLICO, NO ARRAY
NULLNAME {%}NORMA ( {} -> % )
::
INNERCOMP
%0
SWAP ZERO_DO (DO)
SWAP %SQ_ %+
LOOP
%SQRT
;
*** CONVIERTE UNA LISTA DE NOMBRES GLOBALES A LISTA DE NOMBRES LOCALES
NULLNAME {ID}->{LAM} ( {ID}/Mid -> {LAM} )
:: INNERCOMP
DUP ZERO_DO (DO)
ROLL
ID>LAM_
ISTOP@
LOOP
{}N
;
*** GUARDA LOS OBJETOS DE LA LISTA {ob}
*** EN LOS NOMBRES GLOBALES O LOCALES DE LA LISTA {id/lam}
NULLNAME STO{} ( {ob} {id/lam} -> )
::
toLEN_DO (DO)
OVERINDEX@ NTHCOMPDROP
OVERINDEX@ NTHCOMPDROP
STO
LOOP
2DROP
;
*** CONVIERTE UN OBJETO ALGEBRAICO EN UN PROGRAMA
*** PARA AUMENTAR LA RAPIDEZ DE LOS CALCULOS
NULLNAME SYMB_ID->::_LAM ( symbx-> symb% )
:: INNERCOMP
DUP ZERO_DO (DO)
ROLL
:: DUP' x+
EQ case :: DROP' %+ ;
DUP' x*
EQ case :: DROP' %* ;
DUP' x/
EQ case :: DROP' %/ ;
DUP' xEQ case :: DROP' %- ;
DUP' x^
EQ case :: DROP' %^ ;
DUP' xNEG EQ case :: DROP' %CHS ;
DUP' xSQ
EQ case :: DROP' :: DUP %* ; ;