我試圖解方程的系統具有以下形式:Matlab:如何求解二元方程組?
a5 + a6 + a7 + f5 + f6 + f7 = 11;
b5 + b6 + b7 + e5 + e6 + e7 = 100;
c5 + c6 + c7 + d5 + d6 + d7 = 100;
a5 + b5 + c5 + d5 + e5 + f5 = 11;
a6 + b6 + c6 + d6 + e6 + f6 = 100;
a7 + b7 + c7 + d7 + e7 + f7 = 100;
,所有的變量和數字是二進制文件。
有沒有辦法在Matlab中做到這一點?
例如,通過有十進制值代二進制數:
a5 + a6 + a7 + f5 + f6 + f7 = 3;
b5 + b6 + b7 + e5 + e6 + e7 = 4;
c5 + c6 + c7 + d5 + d6 + d7 = 4;
a5 + b5 + c5 + d5 + e5 + f5 = 3;
a6 + b6 + c6 + d6 + e6 + f6 = 4;
a7 + b7 + c7 + d7 + e7 + f7 = 4;
並以某種方式告訴MATLAB未知數應該是整數,從區間[0:1]?
這裏是A X = B形式:
A = [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1;
0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0;
0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0;
1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0;
0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0;
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1];
b = [3 4 4 3 4 4];
這將是再下一步?
你應該通過重新排列該入[線性聯立方程標準矩陣形式](http://en.wikipedia.org/wiki/System_of_linear_equations#Matrix_equation)開始,* Ax = b的*(其中,目標是解決* x *)。這至少會使它更容易處理,並且符號更簡單。 –
這看起來像一個問題*整數編程與二進制變量*是(如果內存服務)NP完成。一般使用有兩種方法:*分支和綁定*和*枚舉*。就我個人而言,我不會將其視爲一組聯立線性方程組,因爲@ OliCharlesworth的答案可能被解讀爲暗示。 –
@HighPerformanceMark:我並不是說應該把它作爲一個線性的Ax + b問題來解決,但是如果封裝在一個向量和一個矩陣中,它肯定會更容易處理係數等等。 –