首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Matlab中的循环从表达式中求出最大值

使用Matlab中的循环从表达式中求出最大值
EN

Stack Overflow用户
提问于 2021-07-24 18:07:04
回答 1查看 90关注 0票数 0

x位于01之间时,我希望使用表达式的二阶导数找到最大值。换句话说,我使用cox(x^2)的导数两次,得到导致- 2*sin(x^2) - 4*x^2*cos(x^2)的二阶导数,然后在x = 0计算这个二阶导数到x = 1,并显示填充值的maximum值。

我有:

代码语言:javascript
复制
syms x
f = cos(x^2);
secondD = diff(diff(f));

for i = 0:1
y = max(secondD(i))
end

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-24 18:45:27

您可以通过subsdouble轻松地完成它。

代码语言:javascript
复制
syms x
f = cos(x^2);
secondD = diff(diff(f));

% instead of the for loop
epsilon = 0.01;
specified_range = 0:epsilon:1;
[max_val, max_ind] = max(double(subs(secondD, specified_range)));

请注意,这是一种求出最大值的数值方法,并且返回的答案并不总是完全正确的。但是,通过增加epsilon,您可以期望得到更好的结果(在某些情况下也是不完全正确的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68512622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档