gpt4 book ai didi

matlab - Fminsearch Matlab(非线性回归)

转载 作者:行者123 更新时间:2023-12-02 08:14:52 27 4
gpt4 key购买 nike

谁能向我解释一下如何将非线性回归应用于该方程并使用 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

[新]:现在我使用 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);

最佳答案

您要查找参数k给定当前数据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 开始最小化模型误差;请将其更改为更合适的值(如果您对此有很好的猜测)。

关于matlab - Fminsearch Matlab(非线性回归),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361989/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com