2016-06-27 13 views
1

私は、この最小限のコードがあります。のEmacsカルク複数のソリューション

(progn 
    (calc) 
    (calc-hyperbolic) 
    (calc-eval "[8.66e10 = r * v, -7.51e6 = 0.5*v^2 - 6.67e-11*6e24/r]" 'push) 
    (calc-solve-for "[r,v]") 
    (print (calc-eval 1 'top)) 
    (calc-quit)) 

をそして私は、私が読んで取扱説明書では、一般的なソリューション

"[r = 86600000000./(4621.24711316 - 2517.12631405 s2), v = 4621.24711316 - 2517.12631405 s2]" 

取得:

「ハイパボリックフラグ( H a S)[fsolve]は、ソルバーに 完全な一般的な解を報告するように指示します。変数n1、n2、...、を作成しますs1、s2、...、 は独立した任意の符号(+1または-1のいずれか)を表します。 ... sl(calc-let)コマンドを使用して、さまざまな実際の の解を得ることができます(これは、数式ソルバー自体を除いてCalcの特別な解釈 )これらの変数の値。

私は2つの解決策、akaを代わりにs2(私はなぜs1の代わりにs2?)と+1と-1を得るためにプログラム的に進めることができますか?

ありがとうございました。

答えて

0
(progn 
    (calc) 
    (calc-hyperbolic) 
    (calc-eval "[8.66e10 = r * v, -7.51e6 = 0.5*v^2 - 6.67e-11*6e24/r]" 'push) 
    (calc-solve-for "[r,v]") 
    (calc-eval -1 'push) ; value for variable s2 
    (calc-let 'var-s2) ; right name of variable s2 
    (print (calc-eval 1 'top)) 
    (calc-quit)) 

ありがとうございます。

関連する問題