如何用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

运行结果

这里提供一个利用网格矩阵解二维不定方程整数解的方法:
已知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).

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值