主要内容

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

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

t = randn (10, 1);%示例中的数据x = optimvar (“x”10);Obj = sum((x - t) ^2);显式平方和概率= optimproblem (“客观”、obj);%检查查看默认的求解器选择= optimoptions(概率)
Opts = lsqlin选项:…

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

methoda(型)^ 2 =标准;prob2 = optimproblem (“客观”, methoda);%检查查看默认的求解器选择= optimoptions (prob2)
Opts = lsqlin选项:…

相反,将目标表示为一个数学等价的表达式,软件将其解释为一个一般的二次问题。

Obj3 = (x - t)'*(x - t);等于平方和,%,但不能解释为平方和prob3 = optimproblem (“客观”, obj3);%检查查看默认的求解器选择= optimoptions (prob3)
Opts = quadprog选项:…

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

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

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

Obj5 = norm(expr - ydata)^2;%范数平方prob5 = optimproblem (“客观”, obj5);%检查查看默认的求解器选择= optimoptions (prob5)
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);数据例如一个= randn;%系数k = abs (randn (5,1));%积极系数显式平方和:R1 = a + k(1) *总和(k(2) *总和(k(3) *总和((x - t) ^ 2, 3)));求k(4)* k(5)*sum((y - u).^2,2);R3 = 1 + cosx ^2;概率= optimproblem (“目标”, r1 + r2 + r3);选项= optimoptions(概率)
选项= lsqnonlin选项:…

相关的话题