我有一个简单的方程式要解决,我想在matlab中做,但是,有几年,我没有使用,有点忘了它。 所以这个
由于我无法找到的错误,linsolve({(387 = mod(324 * a + b,601)),(491 = mod(381 * a + b,601))},{a,b}),
没有给我一个结果。 最初的方程组是:
(324A + B)mod601 = 387 (381A + B)mod601 = 491,
显然是仿真密码。 谢谢!答案 0 :(得分:0)
试试这个 首先让你在一个名为myfunc.m的单独文件中描述方程式:
function y=myfunc(x)
y(1)=mod(324*x(1)+x(2),601)-387;
y(2)=mod(381*x(1)+x(2),601)-491;
比申请fsolve
x0=[1; 1];
[ans,err]=fsolve(@myfunc,x0)
x0
是对解决方案的猜测。这种方法给出了一个近似的数值解决方案。
fsolve
解决了一个非线性方程组。它有很多参数,你可以在MATLAB帮助中阅读它们。
让我知道它是否有效
答案 1 :(得分:0)
从这些方程开始,
(324*a + b) mod 601 = 387,
(381*a + b) mod 601 = 491,
我们可以得出结论
((381*a + b) - (324*a + b)) mod 601 = (491 - 387) mod 601
因此(在括号内进行明显的简化) 在左侧并完全评估右侧),
(57*a) mod 601 = 104.
这看起来比两个变量中的两个方程系统更容易解决。
知道a
后,您可以返回原始方程之一并求解b
。