24小时热门版块排行榜    

查看: 1872  |  回复: 6

zs024995

新虫 (小有名气)

[求助] 跪求用遗传算法或粒子群算法解决四元二次方程代码或实例 已有1人参与

跪求用遗传算法或粒子群算法或者其他好的算法解决四元二次方程代码或实例

@月只蓝 发自小木虫Android客户端
回复此楼

» 猜你喜欢

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

ybkooo

至尊木虫 (著名写手)

^^

【答案】应助回帖

感谢参与,应助指数 +1
function friction   
clear all
clc

[x,fv]=PSO(@fitness,40,2.05,2.05,0.5,200,7);
fprintf('\n\n使用函数PSO()估计得到的参数值为:\n')
fprintf('\tk1 = %.9f \n',x(1))
fprintf('\tk2 = %.9f \n',x(2))
fprintf('\tk3 = %.9f \n',x(3))
fprintf('\tk4 = %.9f \n',x(4))
    eq1=x(1).^2+(x(2)-b).^2-(x(3)+x(4)*t1).^2
    eq2=(x(1)-a).^2+(x(2)-b).^2-(x(3)+x(4)*t2).^2
    eq3=x(1)^2+x(2).^2-x(3).^2
    eq4=(x(1)-a).^2+x(2).^2-(x(3)+x(4)*t3).^2
...

function ff=fitness(x)
    t1=0.0001241;
    t2=0.0001272;
    t3=0.0000313;
    a=0.3;
    b=0.45;

    eq1=x(1).^2+(x(2)-b).^2-(x(3)+x(4)*t1).^2;
    eq2=(x(1)-a).^2+(x(2)-b).^2-(x(3)+x(4)*t2).^2;
    eq3=x(1)^2+x(2).^2-x(3).^2;
    eq4=(x(1)-a).^2+x(2).^2-(x(3)+x(4)*t3).^2;
   
    ff=(eq1).^2+(eq2).^2+(eq3).^2+(eq4).^2;  %把四个方程写成右边为0,把左边写入括号内;
end

function [xm,fv] = PSO(fitness,N,c1,c2,w,M,D)
%     待优化目标函数:fitness
%     粒子数目:N
%     学习因子1:c1
%     学习因子2:c2
%     惯性权重:w
%     最大迭代次数:M
%     自变量的个数:D
%     目标函数取最小值时的自变量:xm
%     目标函数的最小值:fv
format long;
%------初始化种群的个体------------
for i=1:N    %粒子数目:N
    for j=1  %自变量的个数:D
        x(i,j)=randn;  %随机初始化位置
        v(i,j)=randn;  %随机初始化速度
    end
end
%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------
for i=1:N
    p(i)=fitness(x(i,);
    y(i,=x(i,;
end
pg = x(N,;             %Pg为全局最优
for i=1N-1)
    if fitness(x(i,)<fitness(pg)
        pg=x(i,;
    end
end
%------进入主要循环,按照公式依次迭代------------
for t=1:M
    for i=1:N
        v(i,=w*v(i,+c1*rand*(y(i,-x(i,)+c2*rand*(pg-x(i,);
        x(i,=x(i,+0.1*v(i,;
        if fitness(x(i,)<p(i)
            p(i)=fitness(x(i,);
            y(i,=x(i,;
        end
        if p(i)<fitness(pg)
            pg=y(i,;
        end
    end
    Pbest(t)=fitness(pg);
end
xm = pg';   %目标函数取最小值时的自变量:xm
fv = fitness(pg);
end
end
abcd
2楼2016-04-19 09:19:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ybkooo

至尊木虫 (著名写手)

^^

运行结果
使用函数PSO()估计得到的参数值为:
        k1 = 0.150093852
        k2 = 0.224956985
        k3 = 0.270387591
        k4 = 0.207724069

eq1 =
    4.913248438891127e-005
eq2 =
   -7.526761060847043e-006
eq3 =
    2.436019185562965e-005
eq4 =
   -3.546682525368272e-005
abcd
3楼2016-04-19 09:21:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

2楼已经给出了很好的例子。
算法思想就是把求解非线性方程组问题转化为求方程组残差平方和最小值的最优化问题。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2016-04-19 09:49:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ybkooo

至尊木虫 (著名写手)

^^

[x,fv]=PSO(@fitness,80,2.05,2.05,0.5,800,4); %种群数80,迭代次数800.都可以修改
fprintf('\n\n使用函数PSO()估计得到的参数值为:\n')
fprintf('\tx1 = %.9f \n',x(1))
fprintf('\tx2 = %.9f \n',x(2))
fprintf('\tx3 = %.9f \n',x(3))
fprintf('\tx4 = %.9f \n',x(4))
abcd
5楼2016-04-19 12:53:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zs024995

新虫 (小有名气)

引用回帖:
2楼: Originally posted by ybkooo at 2016-04-19 09:19:46
function friction   
clear all
clc

=PSO(@fitness,40,2.05,2.05,0.5,200,7);
fprintf('\n\n使用函数PSO()估计得到的参数值为:\n')
fprintf('\tk1 = %.9f \n',x(1))
fprintf('\tk2 = %.9f \n',x(2))
fpri ...

如果有约束呢?每个变量都有区间
6楼2016-04-25 21:02:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ybkooo

至尊木虫 (著名写手)

^^

【答案】应助回帖

引用回帖:
6楼: Originally posted by zs024995 at 2016-04-25 21:02:59
如果有约束呢?每个变量都有区间...

PSO做约束优化的粒子少,可以用新版本matlab的遗传算法工具箱,可以设定约束条件。
见附件 遗传算法 工具箱的应用,有一个粒子。
还有在网上找到的PSO算法约束优化,不过程序很多,没看懂呢还。
跪求用遗传算法或粒子群算法解决四元二次方程代码或实例
q1.png


跪求用遗传算法或粒子群算法解决四元二次方程代码或实例-1
q2.png


跪求用遗传算法或粒子群算法解决四元二次方程代码或实例-2
q3.png

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : psopt20100414.rar
  • 2016-04-25 23:44:04, 26.17 K
abcd
7楼2016-04-25 23:44:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zs024995 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +3 gouxfjh 2026-08-28 3/150 2026-08-29 01:01 by jurkat.1640
[基金申请] 国自然评审意见 +11 wangmingqi 2026-08-28 15/750 2026-08-29 00:17 by fangyl2005
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +8 苏东坡二世 2026-08-23 8/400 2026-08-28 14:41 by lkforward
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 2026年叶企孙基金 +3 bud_bud 2026-08-27 6/300 2026-08-28 11:53 by bud_bud
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见