2014-10-16 55 views
2

我試圖用Mathematica來求解一個方程式,但我似乎無法得到任何實際的答案。在Mathematica中獲得實數整數解的方程?

輸入:

Solve[(5*d) + (216*b) == 1, {d, b}, Integers] 

輸出:

{{d -> ConditionalExpression[173 + 216 C[1], C[1] \[Element] Integers], 
    b -> ConditionalExpression[-4 - 5 C[1], C[1] \[Element] Integers]}} 

我想要的輸出是這個樣子:

{b=123, d=456} 

這是可能實現?

回答

1

解決方案給你解決方案。如果你想一個解決方案,更改到FindInstance:

FindInstance[(5*d) + (216*b) == 1, {d, b}, Integers] 

具體做法是:

{{d -> 173, b -> -4}} 

如果您想帶來一些變化,你可以直接從解決一些隨機的解決方案:

Normal @ First @ Solve[(5*d) + (216*b) == 1, {d, b}, Integers] /. 
C[1] -> RandomInteger[1000] 
0

正如其他人所指出的那樣,沒有一個解決,但事實上1參數(更準確地說,所有的解都是(b,d)空間中一行上的整數點)。

Solve爲您提供了代表無限數量解決方案的參數解決方案。

有你的系統的小模數解決方案列表的方法是做到以下幾點

Solve獲取解決方案的定義,重命名C [1]當n爲方便起見,以及 解釋到數學那n應該被認爲是一個整數。

az = Assuming[{n \[Element] Integers}, 
     Simplify[{d, b} /. 
      Solve[(5*d) + (216*b) == 1, {d, b}, Integers] /. {C[1] -> n}]] 

{{173 + 216 n, -4 - 5 n}} 

然後通過改變該參數的值生成溶液(我們只需要該溶液表達的第一個元素,如Solve總是給即使只有一個的情況下的解決方案的列表)。

Table[First[az], {n, -10, 10}] 

{{-1987, 46}, {-1771, 41}, {-1555, 36}, {-1339, 31}, {-1123, 26}, {-907, 21}, {-691, 16}, {-475, 11}, {-259, 6}, {-43, 1}, {173, -4}, {389, -9}, {605, -14}, {821, -19}, {1037, -24}, {1253, -29}, {1469, -34}, {1685, -39}, {1901, -44}, {2117, -49}, {2333, -54}} 

這給你最接近原點的點,這是你的問題的解決方案。例如,你可以用ListPlot來繪製它們。