【问题标题】:Fminsearch Matlab (Non Linear Regression )Fminsearch Matlab(非线性回归)
【发布时间】:2016-02-14 02:40:19
【问题描述】:

谁能向我解释我如何将非线性回归应用到这个方程中,以使用 matlab 命令窗口找出 K。

I = 10^-9(exp(38.68V/k)-1)。 Screenshot of Equation

我的数据值如下:

Voltage := [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]:
Current:= [0, 0, 0, 0, 0, 0, 0, 0.07, 0.92, 12.02, 158.29]:

Screenshot of Equation

[NEW]:现在我使用 FminSearch 作为替代方法,出现了另一条错误消息。

Matrix dimensions must agree.

Error in @(k)sum((I(:)-Imodel(V(:),k)).^2)

Error in fminsearch (line 189)
fv(:,1) = funfcn(x,varargin{:});

我使用了这个 fminsearch 代码:

>> V = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];
>> I = [0, 0, 0, 0, 0, 0, 0.07 ,0.92 ,12.02 ,158.29];
>> Imodel = @(V,k) 1E-9*(exp(38.68*V/k)-1);
>> k0 = 1;
>> kmodel = fminsearch(@(k) sum((I(:)-Imodel(V(:),k)).^2), k0)    
>> kmodel = fminsearch(@(k) sum((I(:)-Imodel(V(:),k)).^2), k0);

【问题讨论】:

  • 您能否将图片发布为该公式的 LaTeX 格式版本?你是说有嵌套的权力?无论哪种方式,您是否考虑过进行对数线性回归(即取两边的对数,然后进行线性回归)?
  • @Dan,我附上了实际方程式的截图。
  • @Dan:我现在正在考虑进行对数线性回归,0A 电流测量是否会给线性回归增加误差?如果我忽略这些值,它会提高准确性吗:?

标签: matlab math regression linear-regression fminsearch


【解决方案1】:

在电流数据I 和电压数据V 为向量:

Imodel = @(V,k) 1E-9*(exp(38.68*V/k)-1);
k0     = 1;
kmodel = fminsearch(@(k) sum((I(:)-Imodel(V(:),k)).^2), k0);

plot(V(:), I(:), 'ok', V(:), Imodel(V(:),kmodel), '-r');

匿名函数计算误差平方和。搜索将最小化模型误差的参数k 从值 1 开始;请将其更改为更合适的值(如果您猜对了)。

【讨论】:

  • 我有这些值,我需要找到 k;电压:= [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]:电流:= [ 0, 0, 0, 0, 0, 0, 0, 0.07, 0.92, 12.02, 158.29]:
  • @Saavin 抱歉,我已经给出了解决方案。你试过了吗?您是否需要更多关于如何将其应用于您的案例的帮助?我查看了您的个人资料,得知您精通 MATLAB,因此我认为您可以根据自己的需要调整解决方案。
  • @Saavin 我更改了代码以便更具可读性,另外我添加了数据与模型的关系图。
  • 我已经尝试过了,仍然出现错误,>> f = (voltage, k) 1E-9*(exp((36.68.*voltage)/k)-1); >> nlinfit(电压,电流,f,[1 0.15829])
  • @Saavin 我使用了fminsearch(这是一个通用的 MATLAB 函数)而不是nlinfit(它带有统计工具箱)。我要问的是:您尝试过我发布的代码吗?
猜你喜欢
  • 2016-05-24
  • 2013-10-25
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 2016-11-13
  • 2019-10-09
  • 2012-09-17
  • 2023-03-27
相关资源
最近更新 更多