You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R(v.4.2.1)中求解使函数达到目标最大值的参数x值

问题分析与解决方案

首先,你的函数f(x)是平方根包裹的二次型,由于平方根是单调递增函数,最大化f(x)等价于最大化其内部的二次型表达式,这样可以简化计算。

步骤1:展开二次型

设向量v = [a, b, c, x]^T,二次型为v^T %*% rho %*% v。代入a = b = c = 1000和给定的rho矩阵,展开后得到:

二次型 = x² + 2000x + 4200000

因此,函数可简化为:

f(x) = sqrt(x² + 2000x + 4200000)

步骤2:分析函数单调性

对f(x)求导可得:

f’(x) = (x + 1000) / sqrt(x² + 2000x + 4200000)

在x ≥ 0的区间内,分子x+1000 > 0,分母始终为正,因此f’(x) > 0,说明**f(x)在x ≥ 0时单调递增**。

两种场景的结果

场景1:在区间[0, 10000]内找使f(x)最大的x

由于函数单调递增,最大值出现在区间右端点:

  • x = 10000
  • 此时f(x) = sqrt(10000² + 2000*10000 + 4200000) ≈ 11144.5

场景2:找使f(x) = 10000的x值

解方程sqrt(x² + 2000x + 4200000) = 10000,两边平方后整理为二次方程:

x² + 2000x - 95800000 = 0

用求根公式计算得正根:

  • x ≈ 2111.2(负根舍去,因为x ≥ 0)

你的代码运行结果说明

你使用optimize函数在[0, 10000]区间求最大值,由于函数单调递增,代码返回的output$maximum会是10000,对应output$objective约为11144.5。

内容的提问来源于stack exchange,提问作者Ric87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:45:39