6542 6

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

  • 0关注
  • 0粉丝

大专生

60%

还不是VIP/贵宾

-

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

楼主
努力学习的学渣儿 发表于 2021-4-11 14:54:29 |AI写论文

+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
好的,我们知道你的作业是什么了。接下来你要分享你的具体回答了吗?

板凳
努力学习的学渣儿 发表于 2021-4-12 23:57:17
cheetahfly 发表于 2021-4-11 17:43
好的,我们知道你的作业是什么了。接下来你要分享你的具体回答了吗?
不打算教一下的吗

报纸
努力学习的学渣儿 发表于 2021-4-14 13:15:40
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)

地板
知了其实叫知了 发表于 2023-10-23 23:10:55
努力学习的学渣儿 发表于 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
拉您进交流群
GMT+8, 2025-12-9 08:45