Parciální derivace - část druhá

Pokračování započatého tématu není ničím jiným, než obžalobou vývojářů od Hewlett Packard. Odpověď na zcela legitimní otázku "Proč v instrukční sadě HP-35s chybí mechanizmus pro nepřímý skok?" zůstane patrně firma obyvatelům planety Země dlužna ještě po další smutná tisíciletí. S jakou lehkostí bychom tomuto "superstroji" odpustili pár hloupých a zbytečných chyb ve firmwaru, kdyby byly k mání instrukce typu GTO(I) resp. XEQ(J). Přítomnost FN=(I) to opravdu nezachrání. Spíše dráždí fantazii uživatelovu vlezlou otázkou: "Když programové prostředky pro nepřímý skok ve firmwaru obsaženy jsou (jinak instrukci FN=(I) realizovat nelze), proč nejsou využity i u prostých instrukcí skoků???" Je to velice frustrující, ale nedá se nic dělat. Náš živočišný druh se s touto skutečností (stejně jako s mnoha dalšími) musí chlapsky vyrovnat a na úvahy o teple konejšivé náruči božské nepřímé adresace v instrukcích programových skoků na HP-35s jednou pro vždy rezignovat. Jak necitlivé...

Poslání druhé části kapitoly "Parciální derivace" na nás tedy z předchozího odstavce vycenilo zuby. Jasně, je to řešení pro HP-35s. Následující oba programy (výkonný D i ukázkový pro vyšetření extrému funkce E se zkoumanou funkcí J) jsou pouhým přepisem pro "pětatřicítku". Není v nich nic chytrého, co by možnosti tohoto výkonného stroje využilo a demonstrovalo. Viditelné rozdíly jsou minimální:

Nechme tedy fňukání a statečně přistupme k výpisu. Tentokrát je vše na jedné hromadě.

ADDRCODEXYZTI
Parciální derivace
D001LBL D




D002-27&n   &var
D003x<>i&var   &n
D004STO(I)n = &var



D005STO I&var   &var
D006Σxdxi



D007STO-(I)var -= dxi



D008XEQ D027res1



D009-30&Σx²res1


D010STO I&Σx²res1  &Σx²
D011R↓res1



D012STO(I)Σx² = res1



D013n&var



D014STO I&var   &var
D015Σxdxi



D016STO+(I)var += dxi



D017STO+(I)var += dxi



D018XEQ D027res2



D019Σx²res1res2


D020-res2 - res1



D021Σxdxires


D022STO-(I)var -= dxires


D023ENTERdxidxires

D024+2 dxires


D025÷res / (2 dxi)



D026RTNvýsledek



D027GTO J001




LN=87, CK=A18E
Výpočet extrému
E001LBL Edxi&varhighlow
E002STO Idxi&varhighlowdxi
E003CLx0&varhighlow
E004-28&Σx&varhighlow
E005x<> Idxi&varhighlow&Σx
E006x<>y&vardxihighlow
E007STO(I)Σx = &var



E008CLx0dxihighlow
E009+dxihighlowlow
E010x!=0Je dxi zadáno?



E011GTO E018Ano, je.



E012R↓highlowlowdxi
E013ENTERhighhighlowlow
E014R↓highlowlowhigh
E015-low - highlowhighhigh
E016-5E4-5E4low - highlowhigh
E017÷dxilowhighhigh
E018x<>(I)Σx = dxi



E019STO I&varlowhighhigh&var
E020R↓lowhighhigh&var&var
E021STO(I)var = low



E022x<>yhighlow  &var
E023FN= D




E024SOLVE(I)výsledek



E025RTN




LN=82, CK=5124
Zkoumané funkce:
y = x² ln(x)
J001LBL J




J002RCL Xx



J003



J004LASTxx


J005LNln(x)


J006×x² ln(x)



J007RTNvýsledek



y = sin(a)
J008RCL Aa



J009SINsin(a)



J010RTNvýsledek



LN=30, CK=F297

Použití programu:
Stisk klávesČinnostDisplay

1) y = x² ln(x)
 
. 5 dolní mez 0.0000
0.5_
ENTER
. 7
horní mez 0.5000
0.7_
ENTER
2 4 +/-
adresa proměnné X 0.7000
-24_
ENTER
0
krok nezávislé proměnné nezadán -24.0000
0_
XEQ E ENTER spuštění programu
RUNNING → SOLVING
výsledek 0.6065
0.6065
SHOW celá mantisa výsledku 0.6065
606530676323


2) změna zkoumané funkce
 
GTO D 0 2 7 "ruční" skok na adresu instrukce skoku do zkoumané funkce0.6065
0.6065
PRGM přepnutí do módu PROGRAM D026  RTN
D027  GTO J001
GTO J 0 0 8 vložení nové instrukce skoku na požadovanou funkci D027  GTO J001
D028  GTO J008
[Cursor UP] předchozí insrukce D026  RTN
D027  GTO J001
[BSP] odstranění předchozí/staré instrukce D025  ÷
D026  RTN
C přepnutí do módu CALCULATE 0.6065
0.6065


3) y = sin(a)
 
0 dolní mez 0.6065
0_
ENTER
3
horní mez 0.0000
3_
ENTER
1 +/-
adresa proměnné A 3.0000
-1_
ENTER
. 0 0 5
krok nezávislé proměnné -1.0000
0.005_
XEQ E ENTER spuštění programu
RUNNING → SOLVING
výsledek 1.5708
π 2 ÷ π / 2 1.5708
- chyba výsledku 5.0000E-11