24小时热门版块排行榜    

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

xiashaoyan

新虫 (正式写手)

[求助] 用遗传算法求一个二元函数的最大值是一个复数范围的值,为什么会这样呢? 已有2人参与

求两个二元非线性方程组的解;
方程组为:
     1/x(1)+1/x(2)-1/t3=0,
    sqrt(a1+b1*f+(a2+b2*f)/(t3^2-a3^2)+(a4+b3*f)/(t3^2-a5^2)-a6*t3^2)/t3-sqrt(a1+b1*f+(a2+b2*f)/(X(i,2)^2-a3^2)+(a4+b3*f)/(X(i,2)^2-a5^2)-a6*X(i,2)^2)/X(i,2)-sqrt(a1+b1*f+(a2+b2*f)/(X(i,1)^2-a3^2)+(a4+b3*f)/(X(i,1)^2-a5^2)-a6*X(i,1)^2)/X(i,1)-1/z=0,
    方程中除了x(1),x(2)(是变量),其他参数都是已经的常数,现在我将两个方程转换成求一个函数的极大值 1-f^2-g^2,f为第一个方程组的左边,g为第二个方程组的左边,现在我用的是多种群遗传算法求解上述函数的最大值,但是运行的结果是
Warning: Imaginary parts of complex X and/or Y arguments ignored
> In MPGA at 51
最优值为:449451.5954+2663.266383i
对应的自变量取值:49.9593     0.316498
从结果来看,函数的最大值是449451.5954+2663.266383i,我很纳闷,最大值按理来说是1呀,怎么会是一个复数范围内的数值呢?为什么会出现呢?是因为在实数范围内找不到解吗?求计算的大神求助!
回复此楼

» 猜你喜欢

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

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

xiashaoyan

新虫 (正式写手)

引用回帖:
2楼: Originally posted by feixiaolin at 2014-08-20 20:58:24
X(i,1), X(i,2) 什么意思?

我没说明白,X(i,1), X(i,2)分别表示x(1),x(2),我忘了改变量的符号了
3楼2014-08-20 21:25:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
4楼: Originally posted by feixiaolin at 2014-08-20 21:37:49
你给出其它常数参数我处理一下看。...

好的,
参数:
T=50;
f=(T-24.5)/(T+570.82);
a1=5.319725;
a2=0.09147285;
a3=0.3165008;
a4=100.2028;
a5=11.37639;
a6=0.01497046;
b1=4.753469*10^-7;
b2=3.310965*10^-8;
b3=2.760513*10^-5;
t3=1.064;
z=31.5;

其实方程原来是5个,现在我编程2个了
原来的5个方程为:
1/x(1)+1/x(2)-1/t3=0
x(5)/t3-x(4)/x(2)-x(3)/x(1)-1/z=0
x(3)^2-(a1+b1*f+(a2+b2*f)/(x(1)^2-a3^2)+(a4+b3*f)/(x(1)^2-a5^2)-a6*x(1)^2)=0
x(4)^2-(a1+b1*f+(a2+b2*f)/(x(2)^2-a3^2)+(a4+b3*f)/(x(2)^2-a5^2)-a6*x(2)^2)=0
x(5)^2-(a1+b1*f+(a2+b2*f)/(t3^2-a3^2)+(a4+b3*f)/(t3^2-a5^2)-a6*t3^2)=0

x(1)-x(5)的取值大概在:1.4-1.8,1.4-1.8,1.5-2.5,1.5-2.5(这些范围也可能不准,以求到的解的范围为准)
5楼2014-08-20 21:45:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
7楼: Originally posted by feixiaolin at 2014-08-20 22:53:40
// b1=4.753469*10^-7,
// b2=3.310965*10^-8,
改为 b1=0;  b2=0;
以所得结果为初值,再求一次LM优化即成。...

请问你求出结果了吗?
8楼2014-08-20 23:53:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
9楼: Originally posted by feixiaolin at 2014-08-21 10:47:40
可出来,我手机上网,不方便。
...

那能具体说一下方法吗?
10楼2014-08-21 15:01:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
11楼: Originally posted by feixiaolin at 2014-08-21 15:36:11
Constant  T=50,
f=(T-24.5)/(T+570.82),
a1=5.319725,
a2=0.09147285,
a3=0.3165008,
a4=100.2028,
a5=11.37639,
a6=0.01497046,
//b1=4.753469*10^-7,
//b2=3.310965*10^-8,
b1=0,
b2=0,
b3=2.76051 ...

能把程序贴一下吗?我想学习一下
12楼2014-08-21 15:51:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
13楼: Originally posted by feixiaolin at 2014-08-21 15:54:21
11#为1stop 程序及结果...

我看到结果了,请问可以贴出程序来吗?我想学习一下你用的那种优化算法算法
14楼2014-08-21 16:06:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
15楼: Originally posted by feixiaolin at 2014-08-21 16:10:30
1stop为程序,11#黑体字为代码...

请问你是用什么软件解的呢?好像不是MATLAB
16楼2014-08-21 16:25:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
17楼: Originally posted by feixiaolin at 2014-08-21 16:38:25
http://baike.baidu.com/view/1939680.htm?fr=aladdin...

谢谢哈,明白了,看来我还要好多东西学习,
18楼2014-08-21 16:52:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiashaoyan 的主题更新
信息提示
请填处理意见