Zobrazit plnou verzi příspěvku: Solve equations

JurajI
13.11.2012, 09:07
Dobrý deň, chcem sa opýtať, ako sa dá spraviť, alebo či sa dá spraviť lisp ktorý počíta jednoduché lineárne rovnice? Vie mi s tým prosím niekto pomôcť?


Seiner
13.11.2012, 09:23
No, podle mého se sice dá, jako v podstatě v jakémkoliv jiném programovacím jazyku. Ale já bych se do toho nepouštěl. Když jsem dělal v lispu dříve trochu složitější matematické výrazy, nebyl jsem schopný je po sobě pomalu ani zkontrolovat. Ono se marně neříká Lost in Stupid Parentheses :-).
  A jde vám čistě o programování, nebo chcete i analýzu? Jak velká je ta soustava?

JurajI
13.11.2012, 09:39
:) Sú to jednoduché rovnice o jednej neznámej. Ide v podstate o to, že potrebujem zistiť priesečník dvoch úsečiek v priestore. A nakoľko ho viem zistiť v lispe iba v rovine, tak ma napadlo, že ho zistím matematickým výpočtom. Lenže k tomu potrebujem aby mi lisp vedel vyrátať jednoduchú rovnicu :)

Seiner
13.11.2012, 09:56
no ale pak není problém v řešení nějaké soustavy - tu si vyřešíte na papíře. Jde jen o to, přepsat do lispu ten výsledný výraz. To samozžejmě jde, ale jak jsem psal, výsledné příkazy jsou dost nepřehledné.
 
Třeba takhle vypadá přepis poměrně jendoduchého vzorečku:
(setq  B (LIST (- 0 (*(/(SIN(/ PI 6))(COS(/ PI 6))) (* (/ s 2.)(-(/ 1(COS (/ PI 6)))1))))(CADR LL)))
 
A teď si zkontrolujte, jestli je to dobře přepsané :-) Ale pokud máte dost trpělivost, proč ne. Kdyžtak sem zkuste dát ten matematický výraz a vypíšeme soutěž, kdo ho přepíše správně do lispu :-)

Seiner
13.11.2012, 10:39
Jen tak mezi námi, proč se stím moříte:
 
Finds the intersection of two lines
(inters pt1 pt2 pt3 pt4 [onseg])
All points are expressed in terms of the current UCS. If all four point arguments are 3D, inters checks for 3D intersection. If any of the points are 2D, inters projects the lines onto the current construction plane and checks only for 2D intersection

Vladimír Michl
13.11.2012, 11:22
Neházejte flintu do žita :-)
V AutoLISPu jde řešit leccos. Viz třeba nástroj na řešení soustavy rovnic zapsaných přímo v textu výkresu:
 

 
hezké, ne?
 
Autorem je ale "machr" na AutoLISP. V případě zájmu o prostudování tohoto programového kódu si napište na náš support nebo na Facebook.

vbehun
13.11.2012, 21:38
V lispu počítá Maxima


Petrynka
13.11.2012, 22:08
Jaký je vlastně rozdíl mezi Lispem a AutoLispem? Jsou programy v Lispu použitelné v AutoCADu?

Seiner
13.11.2012, 22:42
http://en.wikipedia.org/wiki/AutoLISP

Vladimír Michl
13.11.2012, 23:02


Jiné varianty LISPu se od AutoLISPu (resp. aktuálního VisualLISPu) v AutoCADu dost liší a není možné LISP kód přebírat do AutoCADu bez jeho podstatných úprav.

alfred
14.11.2012, 07:30

[QUOTE=Petrynka]Jaký je vlastně rozdíl mezi Lispem a AutoLispem? Jsou programy v Lispu použitelné v AutoCADu?[/QUOTE]Taky jsem to kdysi hledal. Zkusím to stručně a jednoduše shrnout, možná nebudu přesný, ale snad to postačí.LISP je obecný programovací jazyk s dlouhou historiií, který je do dnes používaný v různých operačních systémech. Základ z LISPu si převzaly některé další "odnože" (například AutoLisp, Script-fu, které používá GIMP, Emacs, ...). Společné jsou zásady pro zápis, syntaxe (tedy závorky a výše uvedený vtip o "ztracení ve stupidních  závorkách" ), typy proměnných (hodně pracují s proměnou typu "list") možná některé příkazy (výpočty a práce s proměnnými, ...).Liší se hlavně tím, že v jednotlivých odnožích je hromada (resp. většina) speciálních příkazů, které jsou použitelné jen v této odnoži. To je naprosto pochopitelné. Důležité tedy je, že program z LISPu jen tak nespustíte v AutoLispu a naopak. Program ze SCRIP-FU nespustíte v AutoCadu a naopak, atd.Pokud chcete programovat pro AutoCad, nemá moc smysl se s obyčejným LISPem zabývat. Doporučuji se rovnou podívat na VisualLisp, zejména využívat v AutoCadu integrované IDE.

JurajI
14.11.2012, 13:53
Ďakujem za pomoc, nakoniec to spravím pomocou "Finds the intersection of two lines (inters pt1 pt2 pt3 pt4 [onseg])" bude to jednoduchšie :)