• 回答数

    1

  • 浏览数

    1879

  • 收藏数

    0

作者:失心 发表于 2020-5-26 14:02:31
跳转到指定楼层
能正常的求解出变量,但是放到遗传算法中时能输出相应参数但算法的最优值无法得出,每次暂停就卡在了sym中
(1)高次方程求解(这里没问题)
function [Emn,yy,Qbmn1]=ObjectFunctiontest(En,Qpgu)
    syms Emn1
f=Emn1/En;yy1=2.8725*(f.^5)-9.0468*(f.^4)+11.1760*(f.^3)-6.9889*(f.^2)+2.3782*f-0.000002;
eq2=@(Emn1) ((Emn1*(1-yy1)/yy1)-Qpgu);
Emn1=solve(eq2,0);
Bjs=vpa(Emn1);
Cjs=Bjs(imag(Bjs)==0);
Djs=Cjs((0<Cjs)&(Cjs<En));
Fjs=max(Djs);
ajs=eval(Fjs);
    Emn=ajs;
    f1=Emn/En;
    yy=2.8725*(f1.^5)-9.0468*(f1.^4)+11.1760*(f1.^3)-6.9889*(f1.^2)+2.3782*f1-0.000002+1e-10;
    Qbmn1=0;
end
(2)
最优值无法输出(图1)
(3)暂停的时候就弹出来卡在了syms函数中,正常应该卡在遗传算法中的某一步
(4)我把这个放在除了遗传算法的其他正常的for循环求解没有问题,所以不是很清楚哪里写错了。
分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
71
极客币
30
主题
11
帖子
12
注册时间
2020-5-20
在线时间
1 小时
性别
保密
发表于 2020-5-26 14:03:14 | 显示全部楼层
用ga求解是不需要syms进行声明变量的
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录