我前几天问了一个问题here https://stackoverflow.com/questions/20317038/matlab-linear-congruence-solver-that-supports-a-non-prime-modulus/20319591?noredirect=1#20319591并得到了一个似乎可行的答案 - 它涉及使用 linsolve 来找到全部以 p 为模的方程组的解,其中 p 是非素数。
但是,当我尝试从提供的答案运行命令时,或者linsolve
帮助页面,我收到一条错误消息linsolve
不支持“sym”类型的参数。正在使用linsolve
sym 变量只能在 R2013b 中使用吗?我也用我学校的版本(R2012b)进行了尝试。这是我尝试执行的代码(来自上面链接的答案):
A = [0 5 4 1;1 7 0 2;8 1 0 2;10 5 1 0];
b = [2946321;5851213;2563617;10670279];
s = mod(linsolve(sym(A),sym(b)),8)
输出是:
??? Undefined function or method linsolve' for input arguments of type 'sym'.
我也尝试过使用该功能solve
为此,但是即使我构造由矩阵表示的方程A
and b
上面,我遇到了问题。这是我正在尝试的:
syms x y z q;
solve(5*y + 4*z + q == 2946321, x + 7*y + 2*q == 5851213, 8*x + y + 2*q == 2563617, 10*x + 5*y + z == 10670279,x,y,z,q)
输出是:
??? Error using ==> char
Conversion to char from logical is not possible.
Error in ==> solve>getEqns at 169
vc = char(v);
Error in ==> solve at 67
[eqns,vars] = getEqns(varargin{:});
我正在使用吗solve
错误的?我应该尝试在 R2013b 中执行我的代码来使用linsolve
使用符号数据类型?