5357 6

[作业] R语言中极值点的求法 [推广有奖]

  • 0关注
  • 0粉丝

大专生

60%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
440 点
帖子
42
精华
0
在线时间
43 小时
注册时间
2021-4-10
最后登录
2023-3-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
利用r语言中的sign函数,求解函数在区间的所有极值点。
1.求出对应极值点的坐标(使用差分函数和信号函数参与计算)
2.使用nlm函数计算极值点
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 sign nlm

沙发
cheetahfly 在职认证  发表于 2021-4-11 17:43:11 |只看作者 |坛友微信交流群
好的,我们知道你的作业是什么了。接下来你要分享你的具体回答了吗?

使用道具

藤椅
llb_321 在职认证  发表于 2021-4-12 08:20:11 |只看作者 |坛友微信交流群
cheetahfly 发表于 2021-4-11 17:43
好的,我们知道你的作业是什么了。接下来你要分享你的具体回答了吗?

使用道具

cheetahfly 发表于 2021-4-11 17:43
好的,我们知道你的作业是什么了。接下来你要分享你的具体回答了吗?
不打算教一下的吗

使用道具

x<-seq(from = -5 , to = 20)
y=x^3-10*x^2+3*x-8
diff(y)
sign(diff(y))
diff(sign(diff(y)))
which(diff(sign(diff(y)))==-2)
which(diff(sign(diff(y)))==1)
f=function(x) x^3-10*x^2+3*x-8
f(x=0)
f(x=11)
f(x=12)

使用道具

努力学习的学渣儿 发表于 2021-4-14 13:15
x
请问可以解释一下么?

使用道具

7
oliyiyi 发表于 2023-10-27 13:33:16 |只看作者 |坛友微信交流群

利用R中的sign()函数结合差分来求解函数的极值点,步骤如下:

  1. 定义函数表达式,例如:
f <- function(x) x^4 - 3*x^3 + 2 
  1. 计算导数的符号函数:
sign_deriv <- function(x) sign(diff(f, x))
  1. 求导数的零点,即求解sign_deriv(x)==0
uniroot(sign_deriv, c(-2, 3))
  1. 利用nlm求极值点,设置导数为0:
nlm(diff(f, x), 0, c(-2, 3))

nlm结果与uniroot相同。

  1. 检查第二导数,确定极值点类型:
ifelse(sign(diff(f, x, 2))>0, "最小值", "最大值")
  1. 画图验证极值点:
curve(f, -2, 3) 
points(uniroot(sign_deriv, c(-2, 3)), f(uniroot(sign_deriv, c(-2, 3))), col="red")

这样就可以用R的sign()函数结合差分求解表达式的所有极值点。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 19:03