我多次尝试使用c
的不同初始值。我没有使用函数c
获得fminsearch
的最佳值。我发现sigma
的模拟值和测量值之间存在更多误差。请帮帮我:如何优化我的功能?
clc
close all
clear all
syms c sigma est_bio mea_bio
sigma=[-15.1015 -13.7879 -13.0576 -12.7818 -12.3839 -11.7587 -11.1756 -10.6291 -9.9176];
mea_bio=[0.181 0.204 0.529 0.632 1.059 1.533 1.934 1.977 1.861];
%%% create model function q with parameters
q = @(c, mea_bio) ((c(1)/(-2*c(2))).*(1-exp(2*c(2).*mea_bio))+c(3).*exp(2*c(2).*mea_bio))
%// create the desired error-functions for minimization
h = @(c) sum((q(c, mea_bio) - sigma).^2); %// default minimizaton function
c= [-.05 -.0500 -.0500]; % an initial guess
[p_fit_e, r_e] = fminsearch(h, c) % Optimize
est_q = ((c(1)/(-2*c(2))).*(1-exp(2*c(2).*mea_bio))+c(3).*exp(2*c(2).*mea_bio))
err=est_q-sigma
答案 0 :(得分:0)
为什么要将c
,sigma
est_bio
和mea_bio
定义为符号变量?这没有意义。这是一种数值优化,无需涉及符号计算。从代码中删除该行,它应该工作:
syms c sigma est_bio mea_bio