在matlab中使用遗传算法工具箱时,可以使用
fun=@(para)function_0(para,t_b,c_b);
向误差函数传入除了拟合参数外的其他参数。
测试脚本solution.m:
clear;
clc;tic; % 计时函数开始
%% 参数范围
% ca100属于[0,1000];k属于[0,1];
k1=[600 0];
k2=[1000 2];% 拟合数据
t_b=[100,200,300,400,500,600,700,800,900,1000];
c_b=[454,499,535,565,590,610,626,639,650,659];%% 遗传算法求解
Value=1e-3; % 设定函数误差的阈值% 遗传函数ga的调用
options=optimoptions('ga','TolFun',1e-8,'populationsize',300,'generations',2000,...
'stallgenlimit',50,'stalltimelimit',30,'ConstraintTolerance',1e-6,...
'fitnesslimit',Value,'crossoverfraction',0.85,'migrationfraction',0.2); % 设置option参数fun=@(para)function_0(para,t_b,c_b); % 为优化函数传递独立变量
[para