主要内容

矩阵雅可比矩阵的线性系统解析

Este ejemplo muestra la reducción en evaluones de función不成比例的衍生问题,在没有直线的情况下。我明白了描述向量y矩阵的目标函数, la matriz jacobiana J x 联合国系统 F x 西文 J j x F x x j .比例,衍生,和,第二,和,salida para su función客观。

Por ejemplo, la funciónmultirosenbrockEs una generalización n -维德拉función德罗森布罗克(领事解决问题,没有直系的约束,巴萨多的问题)英勇无畏 n

F 1 1 - x 1 F 2 1 0 x 2 - x 1 2 F 3. 1 - x 3. F 4 1 0 x 4 - x 3. 2 F n - 1 1 - x n - 1 F n 1 0 x n - x n - 1 2

La solución del sistema de ecuación F x 0 Es el punto x 1 1 ... n

Para esta función objetivo, todos los términos jacobianos J j x 太阳例外términos donde y j Difieren en al menos uno。Para valores imares de < n , los términos distintos de cero son

J x - 1 J + 1 - 2 0 x J + 1 + 1 1 0

拉función辅助multirosenbrock艾尔最后的结局Crea la función objectivo F x Y su matriz jacobiana J x

让我们一起面对这个问题 x - 1 9 Para valores imares de < n y x 2 Para valores pares de .Especifique n 6 4

N = 64;X0 (1:n,1) = -1.9;X0 (2:2:n,1) = 2;[x,F,exitflag,output,JAC] = fsolve(@multirosenbrock,x0);
方程解决。Fsolve是完成的,因为函数值的向量通过函数公差的值测量接近于零,并且通过梯度测量问题显得有规律。

检查la distance de la solución calculadaxA la solución real y el número de evaluaciones de función quefsolve必要para calcular la solución。

disp(规范(x-ones(大小(x))))
0
disp (output.funcCount)
1043

fsolveentra la solución y必要más de 1.000 evaluaciones de función para hacerlo。

崭新的厄瓜多尔体系,雅可比的家庭。Para hacerlo, establlezca la opción“SpecifyObjectiveGradient”真正的

Opts = optimoptions(“fsolve”“SpecifyObjectiveGradient”,真正的);[x2,F2,exitflag2,output2,JAC2] = fsolve(@multirosenbrock,x0,opts);
方程解决。Fsolve是完成的,因为函数值的向量通过函数公差的值测量接近于零,并且通过梯度测量问题显得有规律。

Una vez más,检查la distancia de la solución calculadax2A la solución real y el número de evaluaciones de función quefsolve必要para calcular la solución。

disp(规范(x2-ones(大小(x2))))
0
disp (output2.funcCount)
21

fsolvedeuelve la misma solución que fronormente, pero must esita unas 20 evaluaciones de función para hacerlo, en lugar de más de 1.000。总而言之,利用拉雅布里亚的母系,减少número评价función拉布里亚的市长,拉布里亚的镇长,拉布里亚的市长。

脂肪酸的配套

Este código crea la función辅助multirosenbrock

函数[F,J] =多罗森布罗克(x)计算问题的大小N =长度(x)如果N == 0,错误('输入向量x为空');结束如果Mod (n,2) ~= 0 error(输入向量x必须有偶数个分量);结束计算向量函数赔率= 1:2:n;偶数= 2:2:n;F = 0 (n,1);F(odds,1) = 1-x(odds);F(偶数,1)= 10.*(x(偶数)-x(奇数).^2);计算雅可比矩阵,如果nargout > 1如果Nargout > 1 c = -ones(n/2,1);C =稀疏(odds,odds, C,n,n);D = 10*ones(n/2,1);D =稀疏(偶数,偶数,D,n,n);E = -20.*x(赔率);E =稀疏(偶数,奇数,E,n,n);J = c + d + e;结束结束

Consulte也

特马relacionados