【问题标题】:Determine the local minimum, local maximum, and inflection points for the functions in matlab确定matlab中函数的局部最小值、局部最大值和拐点
【发布时间】:2021-11-21 03:26:33
【问题描述】:

我一直在尝试在 matlab 中解决这个问题,但是我在解决这个问题时遇到了一些麻烦。

这是一个问题: 确定函数的局部最小值、局部最大值和拐点

这里是函数

这是我的 matlab 脚本

syms [x1,x2]

f = 3*x1.^2+2*x1.*x2+2*x2.^2+7;

G = gradient(f,[x1,x2]);

S = solve(G(1),G(2));

[S.x1 S.x2]

%settting gradient to zero givens x=(0, 0) as the only candidate minimum point

H = hessian(f,[x1,x2])

当我运行脚本时,我得到了这个

感觉好像出了点问题 谁能帮我解决这个问题?

【问题讨论】:

  • “感觉好像出了点问题”。科学和数学并不能真正与感情一起发挥作用。你能详细说明一下吗
  • 因为在运行脚本时,我没有得到图表或梯度是什么。那么我做错了什么?
  • 脚本准确地输出您指示它应该输出的值(不以分号结尾的行是打印结果的行)。您没有绘制图表的代码,因此您没有绘制图表。我不确定您到底期望发生什么,或者您的问题是什么。请edit您的帖子更明确地说明有用的答案是什么样的。
  • 如何确定脚本中函数的局部最小值、局部最大值和拐点?
  • 我认为 fmincon 命令对你有帮助。

标签: matlab


【解决方案1】:

您可以使用fmincon 命令来求函数的最小值:

clc
clear
close all
x0 = [10 -10];
[x, fval]=fmincon(@myFunc1, x0)
function result = myFunc1(x) 
    result = 3*x(1)^2+2*x(1)*x(2)+2*x(2)^2+7;
end

【讨论】:

  • OP 已经找到了最小值,只是没有意识到这一点。
猜你喜欢
  • 2014-04-30
  • 1970-01-01
  • 2014-12-15
  • 2021-09-12
相关资源
最近更新 更多