24小时热门版块排行榜    

查看: 1743  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 341求调剂(一志愿湖南大学070300) +5 番茄头--- 2026-03-22 6/300 2026-03-23 23:45 by Txy@872106
[考研] 081700 调剂 267分 +7 迷人的哈哈 2026-03-23 7/350 2026-03-23 23:19 by 星空星月
[考研] 材料专业求调剂 +11 hanamiko 2026-03-18 11/550 2026-03-23 23:12 by peike
[考研] 一志愿南航材料专317分求调剂 +3 炸呀炸呀炸薯条 2026-03-23 3/150 2026-03-23 20:47 by pswait
[考研] 276求调剂 +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by 醉在风里
[考研] 293求调剂 +3 涛涛Wjt 2026-03-22 5/250 2026-03-22 22:21 by jiangpengfei
[考研] 298求调剂一志愿211 +3 上岸6666@ 2026-03-20 3/150 2026-03-22 15:50 by ColorlessPI
[考研] 求调剂 +5 Zhangbod 2026-03-21 7/350 2026-03-22 13:13 by Zhangbod
[考研] 求调剂 +7 Auroracx 2026-03-22 7/350 2026-03-22 12:38 by 素颜倾城1988
[考研] 266求调剂 +3 哇呼哼呼哼 2026-03-20 3/150 2026-03-21 16:46 by barlinike
[考研] 南昌大学材料专硕311分求调剂 +6 77chaselx 2026-03-20 6/300 2026-03-21 07:24 by JourneyLucky
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +12 yangfz 2026-03-17 12/600 2026-03-21 03:30 by JourneyLucky
[考研] 求调剂 +3 Ma_xt 2026-03-17 3/150 2026-03-21 02:05 by JourneyLucky
[考研] 22408 344分 求调剂 一志愿 华电计算机技术 +4 solanXXX 2026-03-20 4/200 2026-03-20 23:49 by alg094825
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 317求调剂 +5 申子申申 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[考研] 招收调剂硕士 +4 lidianxing 2026-03-19 12/600 2026-03-20 12:25 by lidianxing
[考研] 材料考研调剂 +3 xwt。 2026-03-19 3/150 2026-03-19 11:22 by w沐阳w
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
信息提示
请填处理意见