主要内容

为基于问题的最小二乘写目标函数

要指定基于问题的最小二乘的目标函数,可以将目标显式地写成平方和或表达式的范数的平方。通过显式地使用最小二乘公式,您可以为您的问题获得最合适和最有效的求解器。例如,

T = randn(10,1);%示例中的数据X = optimvar(“x”10);Obj = sum((x - t).^2);%显式平方和问题=优化问题(“客观”、obj);检查默认解算器Opts = optimoptions(prob)
Opts = lsqlin选项:…

同样地,将目标写成平方范数。

Obj2 = norm(x-t)^2;Prob2 =优化问题(“客观”, methoda);检查默认解算器Opts = optimoptions(prob2)
Opts = lsqlin选项:…

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

Obj3 = (x - t)'*(x - t);%等于平方和,%,但不能解释为平方和Prob3 =优化问题(“客观”, obj3);检查默认解算器Opts = optimoptions(prob3)
Opts = quadprog选项:…

类似地,将非线性最小二乘写成范数的平方或优化表达式的显式平方和。这个目标是一个明确的平方和。

T = linspace(0,5);%示例中的数据A = optimvar(“一个”);R = optimvar(“r”);exp = A*exp(r*t);Ydata = 3*exp(-2*t) + 0.1*randn(size(t));Obj4 = sum((expr - ydata).^2);%显式平方和Prob4 =优化问题(“客观”, obj4);检查默认解算器Opts = optimoptions(prob4)
Opts = lsqnonlin选项:…

同样地,将目标写成平方范数。

Obj5 = norm(expr - ydata)^2;%范数平方Prob5 =优化问题(“客观”, obj5);检查默认解算器Opts = optimoptions(prob5)
Opts = lsqnonlin选项:…

软件解释为最小二乘问题的最一般形式是范数的平方或表达式的和Rn这种形式的:

R n 一个 n + k 1 k 2 k 3. ... k j e n 2

  • en是任何表达式。如果多维,en应该逐项平方使用吗. ^ 2

  • 一个n标量数值。

  • kj为正标量数值。

每个表达式Rn必须计算为标量,而不是多维值。例如,

X = optimvar(“x”10、3、4);Y = optimvar(“y”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)*sum(k(5)*sum((y - u).^2,2));R3 = 1 + cos(x(1))^2;问题=优化问题(“目标”, r1 + r2 + r3);选项= optimoptions(prob)
选项= lsqnonlin选项:…

相关的话题