matlab 求解非线性方程组解 急急急!跪谢

来源:百度知道 编辑:UC知道 时间:2024/06/01 14:16:40
我有方程组如下
y=(160+60b)*log(x1),y=(59+60b)*log(x2),y=(57+675b)*log(x3),y=(70+330b)*log(x4),y=(80+300b)*log(x5);x1=x5=2*x3=0.8*x4=.8*x2;求解该方程组。要求所有解都大于0。若无解的话,求一最优解。跪求大侠们。谢谢了!
谢谢xujinghao60482,我打的着急了,这里b,y,x1,x2,x3,x4,x5都是未知数,需要求解。

我自己也没去实验,不过我想这样也能做:

写M文件opt2.m:
function y = myfun(x);
y = [y(1)-y(2);y(1)-y(3);y(1)-y(4);y(1)-y(5);y(2)-y(3);y(2)-y(4);y(2)-y(5);y(3)-y(4);y(3)-y(5);y(4)-y(5)];
输入:
y(1)=(160+60*b)*log(x(1));
y(2)=(59+60*b)*log(x(2));
y(3)=(57+675*b)*log(x(3));
y(4)=(70+330*b)*log(x(4));
y(5)=(80+300*b)*log(x(5));
x(1)=x(5);
x(1)=2*x(3);
x(1)=0.8*x(4);
x(1)=8*x(2);
x0= ones(10,10);
options = optimset('Display','off');
[x,fval,exitflag] = fsolve(@opt2,x0,options)

b 是个什么东东??

看到我眼都花了,,,

y(1)=(160+60*b)*log(x(1));
y(2)=(59+60*b)*log(x(2));
y(3)=(57+675*b)*log(x(3));
y(4)=(70+330*b)*log(x(4));
y(5)=(80+300*b)*log(x(5));
x(1)=x(5);
x(1)=2*x(3);
x(1)=0.8*x(4);
x(1)=8*x(2);
x0= ones(10,10);
options = optimset('Display','off');
[x,fval,exitflag] = fsolve(@opt2,x0,options)