php最小二乘法曲线拟合,科学网—高斯非线性最小二乘法(全局优化)拟合 - 张凌的博文...

close all;

clear all;

clc;

%% Pharmacokinetic Data

t = -10:0.2:10;              %#ok

c = 5*exp(-((t)/4).^2)+randn(size(t))*0.1;

plot(t,c,'o'), xlabel('t'), ylabel('c');hold on

%% 3 Compartment Model

model = @(b,t) (b(1)+b(2)*exp(-((t-b(3))./b(4)).^2))

%% Define Optimization Problem

problem = createOptimProblem('lsqcurvefit',  'objective', model, 'xdata', t, 'ydata', c, 'x0',ones(1,4))

%   'lb', [-10 -10 -10  0],'ub', [ 10  10  10 0.5],'options',optimset('OutputFcn', @curvefittingPlotIterates)

%% solve

% b = lsqcurvefit(problem)%Direct fitting may lead to local optimum

%% Multistart

ms = MultiStart('PlotFcns',@gsplotbestf)

[b,fval,exitflag,output,solutions] = run(ms, problem, 100)                   %#ok

%%

figure;

plot(t,c,'o'), xlabel('t'), ylabel('c');hold on

hold on;

xfdata=-10:0.2:10;

yfdata= b(1)+b(2)*exp(-((xfdata-b(3))./b(4)).^2);

plot(xfdata,yfdata,'r')

hold off;

(1)迭代过程

ezgif.com-video-to-gif.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值