繁体   English   中英

MATLAB 非线性回归使用成本 function

[英]MATLAB non-linear regression using cost function

目前,我正在尝试弄清楚如何使用 model 解决非线性系统。 model 是:

m2(x) = a*x + 2*exp(b*x)

我必须使用数据解决 a 和 b :

x = [0.00,0.25,0.50,0.75,1.00];
y = [2.10,3.70,6.26,10.03,16.31];

使用它我解决了以下成本 function:

(a,b) = sum(y(i) - m2(x(i))^2

我已经尝试了一段时间,但我不知道如何从 m2(x(i)) 中提取 a 和 b。 fsolve 对我不起作用,我也尝试过常规解决 function。 我不是在寻找答案,而是在寻找一个方向,因为我正处于一个完全的障碍中。

编辑:model 捕获 y 对自变量 x 的依赖性我运行此 function 以获得 5 个方程。

function [f] = func(x,y)
    syms a b
    f = a*x + 2 * exp(b*x) == y;
end

与司机:

for i = 1:5
    f(i) = func(x(i),y(i));
end
disp(f');

你的未知数是a,b所以我在 model 中将它们参数化为w ,而不是你所做的。 我使用lsqnonlin并解决如下:

x = [0.00,0.25,0.50,0.75,1.00];
y = [2.10,3.70,6.26,10.03,16.31];
m2 = @(w) w(1)*x + 2*exp(w(2)*x);


cost_func = @(w) m2(w)-y; 
v = lsqnonlin(cost_func,[1 1]); % normal least squares
plot(x,y,'x',x,m2(v));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM