Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fminsearch Matlab(非线性回归)_Matlab_Math_Regression_Linear Regression_Fminsearch - Fatal编程技术网

Fminsearch Matlab(非线性回归)

Fminsearch Matlab(非线性回归),matlab,math,regression,linear-regression,fminsearch,Matlab,Math,Regression,Linear Regression,Fminsearch,有人能给我解释一下我如何用非线性回归法来计算这个方程吗?用matlab命令窗口来计算K I=10^-9(exp(38.68V/k)-1)。 我的数据值如下: 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]: [新]:现在我使用FminSearch作为另一种选择,出现了另一条错误消息 Matr

有人能给我解释一下我如何用非线性回归法来计算这个方程吗?用matlab命令窗口来计算K

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

我的数据值如下:

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]:

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

考虑到当前数据
I
和电压数据
V
作为向量,您希望找到将指数模型的平方误差之和最小化的参数
k
(顺便说一句,这是电流/电压特性吗?):

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开始;请将其更改为一个更合适的值(如果您对此有很好的猜测)。

您是否可以发布一张该公式的LaTeX格式版本的图像?你是说有嵌套的超能力吗?不管是哪种方式,您是否考虑过进行对数线性回归(即,获取两边的日志,然后进行线性回归)?相关:@Dan,我已附上实际方程的屏幕截图。@Dan:我正在考虑进行对数线性回归。当前的测量是否会给线性回归增加误差?如果我忽略这些值,它会提高准确性吗:?我有这些值,我需要找到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,0.07,0.92,12.02,158.29]:@Saavin抱歉,我已经给出了解决方案。你试过了吗?在如何将其应用于您的案例方面,您是否需要更多帮助?我查看了您的个人资料,得知您精通MATLAB,因此我认为您可以根据自己的需要调整解决方案。@Saavin我更改了代码,使其更具可读性,并添加了数据与模型的关系图。我尝试过这一点,但仍然出现错误,>>f=(电压,k)1E-9*(exp((36.68.*电压)/k)-1);>>nlinfit(电压、电流、f,[1 0.15829])@Saavin我使用了
fminsearch
(这是一个通用的MATLAB函数)而不是
nlinfit
(统计工具箱附带)。我想问的是:你试过我发布的代码了吗?