如何用matlab求方程的所有整数解

如图:

如何用matlab求方程的所有整数解?其解决方案,可以通过下列途径解决:

方法一、利用三循环语句和判断语句,求解其所有整数解

方法二、整数线性规划分支定界法,求解其所有整数解

下面按第一种方法求解,其过程为

m=50;n=50;l=50;

disp('满足条件:2x+3y+4z=100的解')

for i=1:m

    for j=1:n

        for k=1:l

            x=i;y=j;z=k;

            xyz=100-(2*x+3*y+4*z);

            if xyz==0 

                disp(['x=',num2str(i),' y=',num2str(j),' z=',num2str(k)])

            end

        end

    end

end

运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-29
多谢了! 这里提供一个利用网格矩阵解二维不定方程整数解的方法:

已知6<x<30,15<y<36,求不定方程 2x+5y=126的整数解。

MATLAB程序如下:

x=5:29;y=14:35;

[x,y]=meshgrid(x,y);

z=2*x+5*y;

k=find(z==126);

x(k),y(k)

输出为:

ans=

8 13 18 23 28

ans=

22 20 18 16 14

即方程有5组解:(8,22),(13,20),(18,18),(23,16),(28,14).
第2个回答  2022-06-29
多谢了! 这里提供一个利用网格矩阵解二维不定方程整数解的方法:

已知6<x<30,15<y<36,求不定方程 2x+5y=126的整数解。

MATLAB程序如下:

x=5:29;y=14:35;

[x,y]=meshgrid(x,y);

z=2*x+5*y;

k=find(z==126);

x(k),y(k)

输出为:

ans=

8 13 18 23 28

ans=

22 20 18 16 14

即方程有5组解:(8,22),(13,20),(18,18),(23,16),(28,14).
相似回答