【问题标题】:optimize the function in MATLAB优化MATLAB中的函数
【发布时间】:2015-01-27 08:33:52
【问题描述】:

我已经尝试过多次采用不同的初始值c。我没有使用函数fminsearch 获得c 的最佳值。我发现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

【问题讨论】:

    标签: matlab optimization modeling


    【解决方案1】:

    为什么将csigmaest_biomea_bio 定义为符号变量?这没有意义。这是一个数值优化,不需要涉及符号计算。从您的代码中删除该行,它应该可以工作:

    syms c sigma est_bio mea_bio
    

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 2012-10-15
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多