主要内容

对模型进行调整,以确定数据的复杂度

En este ejemplo se muestra cómo实现了不调整线性数据的复杂度。minentras que la mayoría de los solutionadores通过algoritmos de Optimization Toolbox™运行单独的数据值,solutionadores de mínimos cuadrados通过pueden trabajar tanos de valor real共同计算复杂的限制问题。fsolveLa función objjetiva debe ser analítica en el sentido de La función compleja。

没有建立的数据集opción没有使用的数据集。FunValCheck“上”解码器错误。

数据模型

El数据模型不是指数简单的:

$$y(x) = v_1 + v_2 e^{v_3 x}

埃尔x美元他的数据,y美元这是我的回答五美元这是联合国向量的系数复杂度。我们的目标是估计五美元x美元Y observaciones ruidosasy美元。El modelo de datos es analítico,穷穷modelo que puede utilizarlo en una solución compleja。

Datos的人工数据是无效的

通用数据人工模型。向量系数复形五美元科莫。[2, 3 + 4我;闲置+ .4i]我喜欢观察x美元distribuidos exponencialmente。在此基础上,我们提出了一种新的解决方案y美元

rng默认的%重复性N = 100;%观测数v0 = [2;3+4i;- 0.5 +.4i];%系数向量xdata = -log(rand(N,1));%指数分布noisedata = randn(N,1).*exp((1i*randn(N,1)));%复杂噪声cplxydata = v0(1) + v0(2).*exp(v0(3)*xdata) + noisedata;

调整模型的准矢量系数

《数据模型的差异研究中心》(第1段)xdatax美元请回答第2段cplxydatay美元西文

objfcn = @ (v) v (1) + (2) * exp (v (3) * xdata) - cplxydata;

使用一种辅助模型来获取数据。lsqnonlinlsqcurvefitEste ejemplo utilza primero。lsqnonlin

Opts = optimoptions(@lsqnonlin,“显示”“关闭”);X0 = (1+1i)*[1;1;1];%任意初始猜测[vestimate,resnorm,residuals,exitflag,output] = lsqnonlin(objfcn,x0,[],[],opts);vestimated、resnorm exitflag output.firstorderopt
vestimate = 2.1582 + 0.1351i 2.7399 + 3.8012i -0.5338 + 0.4660i resnorm = 100.9933 exitflag = 3 ans = 0.0018

恢复矢量系数复合体近似具有dígito意义。lsqnonlin残差的标准是相当可观的,没有指标,没有结果,没有模型来调整今天的观测结果。这是我最喜欢的东西,这是我最喜欢的东西,这是我最喜欢的东西,这是我最喜欢的东西。3.11 e - 31 e-6

替代方法:使用lsqcurvefit

Para ajustar el uso, escriba el modelo Para dar sólo as respuestas, no las respuestas menos los datos de respuestas。lsqcurvefit

Objfcn = @(v,xdata)v(1)+v(2)*exp(v(3)*xdata);

利用不同的选择和不同的方法。lsqcurvefit

opt = optimoptions(@lsqcurvefit,opt);%重用选项[vestimate,resnorm] = lsqcurvefit(objfcn,x0,xdata,cplxydata,[],[],opts)
vestimate = 2.1582 + 0.1351i 2.7399 + 3.8012i -0.5338 + 0.4660i resnorm = 100.9933

这些结果都是一致的,因为它们都是基于遗传算法的,而不是基于遗传算法的。lsqnonlin使用cualquier solutionador que encuentre más方便。

另一种说法是:把馅饼一分为二是一种幻想

Para包括límites, o实现Para的永久完备性,通过将变量分离后的损失系数的复数来划分各个部分。Para este problema, individual loss coefficient de la signente manera;

数组$ $ \开始{}{1}& # xA; y = {v_1} +我{v_2} + ({v_3} + i{两者})\ exp \离开({({v_5} + i {v_6}) x} \) \ \ & # xA; \ \ = \离开({{v_1} + {v_3} \ exp ({v_5} x) \ cos (x) {v_6} -{两者}\ exp ({v_5} x) \ sin (x) {v_6}} \) \ \ & # xA; \ \ + i \离开({{v_2} +{两者}\ exp ({v_5} x) \ cos (x {v_6}) + {v_3} \ exp ({v_5} x) \ sin (x) {v_6}} \右)强生# xA; \{数组}$ $

Escriba la función de respuesta para。lsqcurvefit

函数Yout = cplxreal(v,xdata) Yout = 0 (length(xdata),2);%分配你的expcoef = exp(v(5)*xdata(:));% magnitude coscoef = cos(v(6)*xdata(:));%实余弦项sincoef = sin(v(6)*xdata(:));%虚sin项yout(:,1) = v(1) + expcoef.*(v(3)*coscoef - v(4)*sincoef);你(:,2)= v (2) + expcoef。* * coscoef + v (v (4) (3) * sincoef);

Guarde este código como archiivo en la ruta de access de MATLAB®。cplxreal.m

将数据分割为两部分,这是真实的想象。

Ydata2 = [real(cplxydata),imag(cplxydata)];

在不同的维数下,系数向量。v初始化的como任务丢失,通过解决方案来解决问题。lsqcurvefit

X0 = ones(6,1);[vestimated, resnorm,残差、exitflag、输出]=lsqcurvefit (x0, @cplxreal xdata ydata2);vestimated、resnorm exitflag output.firstorderopt
局部最小值。Lsqcurvefit停止是因为相对于其初始值的平方和的最终变化小于函数容差的值。vestimate = 2.1582 0.1351 2.7399 3.8012 -0.5338 0.4660 resnorm = 100.9933 exitflag = 3 ans = 0.0018

通过ver que la solución es prácticamente la misma que las soluciones preres解释el vector de seseelements como和vector complexjo de setreelements。vestimated

特马relacionados