CyRhmU.jpeg
查看: 3369  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

snowwhite1

木虫 (小有名气)

[求助] 如何使用matlab求解非线性方程组的所有整数解?

例如:下面的方程组
x1^2=x1
x2^2=x2
x3^2=x3
x4^2=x4
x1^2=x1x2x3x4
使用fsolve需要预设初值,并且只能求出一个解,有没有什么较好的方法能求出所有解?(这里所有的解都只能取值0或1)。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

奋斗
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feign_te

金虫 (小有名气)

不过还是感觉求全部解不现实,解的数量接近2^(变量数-约束方程数)
9楼2013-12-01 22:25:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

sogooda

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
臭水沟: 金币+1, 谢谢交流~~ 2012-03-26 10:32:27
一共就4个数,每个数还都只能取0和1两种情况,那就穷举法就行了。
换句话说,编个4重循环,一下子就出来了。
2楼2012-03-25 21:26:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sogooda

金虫 (正式写手)

【答案】应助回帖

★ ★
臭水沟: 金币+2, 谢谢交流~~ 2012-03-26 10:32:42
CODE:
clc
format compact
for x1=0:1
    for x2=0:1
        for x3=0:1
            for x4=0:1
                if x1^2==x1 & ...
                   x2^2==x2 & ...
                   x3^2==x3 & ...
                   x4^2==x4 & ...
                   x1^2==x1*x2*x3*x4
                disp([x1,x2,x3,x4]);
                end
            end
        end
    end
end

可得结果
     0     0     0     0
     0     0     0     1
     0     0     1     0
     0     0     1     1
     0     1     0     0
     0     1     0     1
     0     1     1     0
     0     1     1     1
     1     1     1     1
3楼2012-03-25 21:32:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snowwhite1

木虫 (小有名气)

引用回帖:
2楼: Originally posted by sogooda at 2012-03-25 21:26:47:
一共就4个数,每个数还都只能取0和1两种情况,那就穷举法就行了。
换句话说,编个4重循环,一下子就出来了。

谢谢,我只是举例,实际情况是方程以及变量都很多,没办法穷举的。但方程的解就只有0或1两种情况,有没有什么较好的办法?
奋斗
4楼2012-03-26 00:14:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见