6*x + 3*y + (1/3)*z= 100
程序1:
只有兩個式子,所以
沒有辦法使用標準的方法去求解。
使用 程式設計的方法,是 使用暴力法
xyz=[];
for x=0 :100
for y=0 :100
z= 100 - x - y;
sum= 6*x + 310*y + (1.0/3.0)*z;
if sum-100==0
xyz=[xyz x y z];
else
end
end
end
xyz %如果输出的是xyz=[],则表明方程无整数解!
程序2
原方程变形为:
z = 100-x-y
y=(100-7*x)/4
编程序如下
x=0;
xyz=[];
while x<=100
if mod(100-7*x,4)==0 & 100-7*x>0
y=(100-7*x)/4;
z=100-x-y;
xyz=[xyz x y z];
end
x=x+1;
end
xyz
-----------------------------------
因为 100-7*x>0 ,即x<14.
所以可将 while x<=100 改为while x<14. 这样会提高程序的效率. 对程序2的改进:程序2'
x=0;
xyz=[];
while x<14 %由z = 100-x-y
if mod(100-7*x,4)==0 %由y=(100-7*x)/4
y=(100-7*x)/4;
z=100-x-y;
xyz=[xyz x y z];
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科人口问题数据拟合的MATLAB程序(9)全文阅读和word下载服务。
相关推荐: