1在fsolve迭代:新的x和

11视图(30天)
Sargondjani
Sargondjani 2021年3月9日
评论道: Sargondjani 2021年5月11日
我想用fsolve只使用一个迭代:雅可比矩阵,完成x1和。然而当测试下面的代码,它试图找到0 x ^ 2,我看到下面的:
迭代0 2功能评估:似乎f (x0)和1有限差分
迭代1、2功能评估:似乎f (x1)和1有限差分
我不希望最后两个评估。这是可能的吗?
我的意思是,这一倍计算时间,但它毫无用处。特别是报道的雅可比矩阵的雅可比矩阵x0(不是在x1)。如果它至少会给我雅可比矩阵在x1作为输出,我可以自己计算下一个迭代。
解决方案项目类似的例程,但是我,而用fsolve(例如我还想用JacobPattern)。
清晰的所有;
clc;
fun_res = @ (xx) xx。^ 2;
x0 = 1;
ex_fl = -10;
iter = 0;
ex_fl < 1 & & iter < 100
iter = iter + 1;
1),% [xx_it (iter res (iter, 1), ex_fl, ~,江淮(iter 1)] = fsolve (x0, fun_res optimoptions (@fsolve,“显示”,“通路”,“MaxIterations”, 1));
[xx_it (iter, 1), ~, ex_fl] = fsolve (x0, fun_res optimoptions (@fsolve,“显示”,“通路”,“MaxIterations”1));
x0 = xx_it (iter);
结束
2的评论
Sargondjani
Sargondjani 2021年3月9日
实际上这是真的。我想我误解了结果。无论如何,我发现真的第一步接近真正的解决方案(在我实际的程序,所以这第二步不打破我很多)。

登录置评。

接受的答案

马特·J
马特·J 2021年3月9日
编辑:马特·J 2021年3月9日
一种选择是使用fsolve让雅可比矩阵,然后生成x1自己。这使您可以访问权 JacobPattern 和所有其他的雅可比矩阵计算fsolve提供的功能。
为此,取代你的目标函数 f (x) f (x) - f (x0), 在哪里 x0 thte初始点。请注意,这并不改变雅可比矩阵。因为 x0 是一个根的修改目标, fsolve 将返回 x0 及其雅可比矩阵作为输出0迭代。例子:
有趣= @ (x) x ^ 2/2;
选择= optimoptions (@fsolve,“麦克斯特”1);
x0 =兰德(5、1);
f0 =乐趣(x0);
[x, fval ef,统计,JacobianNumerical] = fsolve (@ (x)乐趣(x) - f0, x0,选项);
在初始点方程解决。fsolve完成,因为向量初始点的函数值接近于零的值函数的宽容,问题出现普通的梯度。
JacobianNumerical,
JacobianNumerical = 5×5
0.3167 0 0 0 0 0 0.5539 0.7692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906 0.5526
JacobianAnalytical =诊断接头(x0)
JacobianAnalytical = 5×5
0.3167 0 0 0 0 0 0.5539 0.7692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906 0.5526
同时,它将没有额外的雅可比矩阵的计算,从,
统计数据
统计=结构体字段:
迭代:0 funcCount: 6算法:“trust-region-dogleg”firstorderopt: 0消息:“↵方程解决在初始点。↵↵fsolve完成,因为向量函数值的初始点↵是接近于零的值函数的宽容,和↵问题出现普通的梯度。↵↵<停止标准细节>↵↵方程解决。最后一点是初始点。↵平方函数值的总和,r = 0.000000 e + 00,小于sqrt (options.FunctionTolerance) = 1.000000 e 03。↵r的梯度的相对标准,0.000000 e + 00,小于选项。OptimalityTolerance = 1.000000 e-06。↵↵”
6个评论
Sargondjani
Sargondjani 2021年5月11日
@Matt J 出于完整性的考虑,我想说,在被速度差异不是由fsolve引起的。但是因为fsolve简单地忽略了JacobPattern默认的算法。所以apperently计算全部Jabobian,即使我指定的模式。我不知道为什么我没有警告我特定的一个选项不、算法。

登录置评。

答案(1)

马特·J
马特·J 2021年3月9日
解决方案项目类似的例程,但是我,而用fsolve(例如我还想用JacobPattern)。
你也可以使用现有的常规文件交换,像这一个,
不会这么难适应的日常工作 JacobPattern
1评论
Sargondjani
Sargondjani 2021年3月9日
马特感谢帮助。和我有一个常规数值计算雅可比矩阵,也许它不是那么多额外的工作来实现JaobianPattern。我刚刚与fsolve希望是可能的。

登录置评。

类别

找到更多的在非线性方程组帮助中心文件交换

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的