matlab求解一个多元非线性方程自变量范围的问题
已知y=16.4478+0.3211*z1-0.56945*z2-0.27836*z3-0.25084*z4+0.0093267*z2*z3+0.0055743*z3*z...
已知y=16.4478+0.3211*z1-0.56945*z2-0.27836*z3-0.25084*z4+0.0093267*z2*z3+0.0055743*z3*z4;
2<=z1<=10;
8<=z2<=24;
0<=z3<=90;
0<=z4<=36;
若要求0<=y<=0.06,则根据上面的y=f(z1,z2,z3,z4)求出z1,z2,z3,z4缩小的范围,请问该用matlab什么函数,具体编程方法?如果能给出完整解答和matlab代码,小弟不胜感激! 展开
2<=z1<=10;
8<=z2<=24;
0<=z3<=90;
0<=z4<=36;
若要求0<=y<=0.06,则根据上面的y=f(z1,z2,z3,z4)求出z1,z2,z3,z4缩小的范围,请问该用matlab什么函数,具体编程方法?如果能给出完整解答和matlab代码,小弟不胜感激! 展开
1个回答
展开全部
可以不使用matlab的函数
自己写的代码如下:
--------------------------------------------------------------
% 定义z1, z2, z3, z4的步长
% 分别是step1, step2, step3, step4
step1 = 1;
step2 = 1;
step3 = 1;
step4 = 1;
--------------------------------------------------------------
for z1 = 2:step1:10
for z2 = 8:step2:24
for z3 = 0:step3:90
for z4 = 0:step4:36
y = myFun(z1, z2, z3, z4);
if y >= 0 && y <= 0.06 % 符合条件
% 显示相应的z1, z2, z3, z4
[z1 z2 z3 z4]
end
end
end
end
end
--------------------------------------------------------------
function y = myFun(z1, z2, z3, z4)
y = 16.4478+0.3211*z1-0.56945*z2-0.27836*z3- 0.25084*z4+0.0093267*z2*z3+0.0055743*z3*z4;
end
--------------------------------------------------------------
使用的是穷举法
自己写的代码如下:
--------------------------------------------------------------
% 定义z1, z2, z3, z4的步长
% 分别是step1, step2, step3, step4
step1 = 1;
step2 = 1;
step3 = 1;
step4 = 1;
--------------------------------------------------------------
for z1 = 2:step1:10
for z2 = 8:step2:24
for z3 = 0:step3:90
for z4 = 0:step4:36
y = myFun(z1, z2, z3, z4);
if y >= 0 && y <= 0.06 % 符合条件
% 显示相应的z1, z2, z3, z4
[z1 z2 z3 z4]
end
end
end
end
end
--------------------------------------------------------------
function y = myFun(z1, z2, z3, z4)
y = 16.4478+0.3211*z1-0.56945*z2-0.27836*z3- 0.25084*z4+0.0093267*z2*z3+0.0055743*z3*z4;
end
--------------------------------------------------------------
使用的是穷举法
更多追问追答
追问
这个我想到过,实际上z1、z2、z3、z4的取值范围是有关联的,如果把这些取值都找出来放在一起而不考虑z1、z2、z3、z4之间的关系的话,取值范围并没有变。但实际上当某两个或三个自变量给定时,另一个变量范围并没有那么大的
追答
如果你不追求运行效率的话,使用这种方法可以帮你快速地解决问题,
而且这个问题的运算量并不大
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询