主要内容

写入基于问题的最小二乘函数

要指定基于问题的最小二乘的目标函数,将目标明确地写为正方形之和。通过显式使用最小二乘配方,您可以获得最合适和高效的解决者的问题。例如,

t = randn(10,1);举例的%数据x = Optimvar('X',10);obj = sum((x  -  t)。^ 2);%明确的平方和prob = OptimProblem(“客观的”,obj);%检查以查看默认求解器选择= Optimoptions(prob)
opts = lsqlin选项:...

相比之下,将目标表达为数学上等同的表达式给出了软件解释为一般二次问题的问题。

obj2 =(x  -  t)'*(x  -  t);%相同的正方和的总和,%但没有解释为广场的总和prob2 = OptimProblem(“客观的”,obj2);%检查以查看默认求解器opts = Optimoptions(prob2)
opts = quadprog选项:...

类似地,将非线性最小二乘性写为优化表达式的明确总和。

t = linspace(0.5);举例的%数据a = Optimvar('一种');r = Optimvar('r');expr = fcn2optimexpr(@(a,r)a * exp(r * t),a,r);ydata = 3 * exp(-2 * t)+ 0.1 * randn(尺寸(t));obj3 = sum((expr  -  ydata)。^ 2);%明确的平方和prob3 = OptimProblem(“客观的”,obj3);%检查以查看默认求解器opts = Optimoptions(prob3)
opts = lsqnonlin选项:...

软件作为最小二乘问题的最常规形式是表达式的总和R.N这个形式:

R. N = 一种 N + K. 1 σ. K. 2 σ. K. 3. σ. ...... K. j E. N 2

  • E.N是任何表达。如果多维,E.N应该使用术语按比赛使用。^ 2

  • 一种N是标量数值。

  • K.j是正标量数值。

每个表达方式R.N必须评估为标量,而不是多维值。例如,

x = Optimvar('X',10,3,4);y = Optimvar('是',10,2);t = randn(10,3,4);例如,%数据u = randn(10,2);例如,%数据a = randn;% 系数k = abs(randn(5,1));%正系数%明确的平方和:R1 = A + K(1)*和(k(2)*和(k(3)*和((x  -  t)。^ 2,3)))));R2 = K(4)*和(k(5)*和((y  -  u)。^ 2,2));r3 = 1 +(fcn2optimexpr(@ cos,x(1)))^ 2;prob = OptimProblem('客观的',R1 + R2 + R3);选项= Optimoptions(prob)
选项= lsqnonlin选项:...

相关话题