24小时热门版块排行榜    

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

程红飞

铜虫 (初入文坛)

[求助] 多元一次方程的matlab解法,要求解为正整数

怎样用matlab编程解方程0.11x+0.12y+0.13z=50,其中x、y、z均为正整数。
回复此楼

» 猜你喜欢

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

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

程红飞

铜虫 (初入文坛)

引用回帖:
6楼: Originally posted by feign_te at 2013-12-01 21:02:09
因为matlab识别不了那个笑脸 笑脸是半冒号和半角括号  :和谐)
而且要调试的话 最好建立一个.m文件...

挺好的,就是 b(k,:)=[x,y,z]和b=b(1:k,:)没有看懂
9楼2013-12-02 01:18:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

cjc5367

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
这个有无穷解吧,最笨的方法:遍历
2楼2013-11-27 11:14:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feign_te

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
程红飞: 金币+5, ★★★★★最佳答案 2013-12-03 21:36:36
相当于求11x+12y+13z=5000的解
由于是正整数 变量都有上限  果断历遍
b=zeros(25000,3);
k=0;
for x=1:500
  for y=1:450  
     z=(5000-11*x-12*y)/13;
     if z==fix(z) && z>0
     k=k+1;
     b(k,=[x,y,z];
     end
  end
end
k;
b=b(1:k,;
居然有七千多个解 挺意外的
3楼2013-11-28 00:14:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

程红飞

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by feign_te at 2013-11-28 00:14:51
相当于求11x+12y+13z=5000的解
由于是正整数 变量都有上限  果断历遍
b=zeros(25000,3);
k=0;
for x=1:500
  for y=1:450  
     z=(5000-11*x-12*y)/13;
     if z==fix(z) && z>0
     k=k+1; ...

为什么把你的代码复制到matlab的command window后,matlab不运行呢???
4楼2013-12-01 05:04:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见