wolfram-mathematica - 求解函数不求解联立方程
问题描述
如何解决 3 个联立方程的问题?下面显示的我的代码没有给出正确的结果。
我试图找到最大面积 (A),而长度 x 和 y 都遵循以下属性:2x + y = 960。
我已经查看了文档,看来我的论点格式是正确的。
Solve[{2 x + y == 960, A == x*y, D[A] == 0}, {x, y}]
我不确定这一点,但是 Solve 函数可能太复杂了,因为它正在获取变量之一 (D[A]) 的导数。
但是我可以手动完成这个问题:
重新排列第一个方程,使 y = 960 - 2x
将 y 代入第二个方程,使得 A = x(960 - 2x) = 2x^2 + 960x
得到导数:4x + 960 并求解 4x + 960 = 0
x = 240
将 x = 240 代入 y = 960 - 2x
y = 960 - 2(240) = 960 - 480 = 480
因此尺寸为 240 x 480。
我希望输出为 {240, 480}。谢谢 :)
编辑:这是我在mathematica中输入的内容:
Clear[x, y, A]
Solve[{2 x + y == 960, A == x*y, D[A, x] == 0}, {x, y}]
OUT: {{x -> 1/2 (480 - Sqrt[2] Sqrt[115200 - A]),
y -> 480 + Sqrt[2] Sqrt[115200 - A]}, {x ->
1/2 (480 + Sqrt[2] Sqrt[115200 - A]),
y -> 480 - Sqrt[2] Sqrt[115200 - A]}
NMaximize[{x*y, 2 x + y == 960}, {x, y}]
OUT: {115200., {x -> 240., y -> 480.}}
解决方案
尝试这个
NMaximize[{x*y,2x+y==960},{x,y}]
这是使用约束表达式最大化区域并立即返回 x->240, y->480
您遇到的困难在于D[A]
何时使用 Mathematica 需要知道您要区分的变量。
也许其中的某些内容将帮助您了解衍生产品的情况。
编辑
看看Solve
会给出什么:
Clear[x,y,A];
A == x*y;
D[A, x]
这给出了 0。为什么会这样?您正在获取 A 关于 x 的导数,但从未为 A 分配任何值,您仅声明 A 和 x*y 相等。因此
Clear[x,y,A];
{2 x + y == 960, A == x*y, D[A, x] == 0}
正在递
{2*x + y == 960, A == x*y, True}
当返回带有 A 的东西Solve
时,这可能就不那么令人费解了。Solve
当 Mathematica 中的某个函数没有给您预期的结果或没有意义的结果时,那么准确检查作为参数提供给该函数的内容始终是一个很好的第一步。
在 Mathematica 中总是有几种做任何事情的方法,其中一些似乎根本没有意义
推荐阅读
- amazon-web-services - AWS Glue - 将粘合作业的执行时间记录到 cloudwatch
- django - Django 根据查询集中的顺序更新行
- sql - 如何让这个自引用内部连接 PostgreSQL 查询只返回每个关联的多个关系之一?
- blazor - 对于 Azure 托管的静态 Web 应用程序 (Blazor),为什么在从移动浏览器查看 URL 时 RedirectURI 和 PostLogoutRedirectUri 不起作用
- javascript - 如何向卡片添加 Toast 通知(或类似通知)?
- wordpress - 在 Wordpress 中分别为每个学生的 pdf 文件添加注释
- php - 反向 Woocommerce 产品订单
- deep-learning - 如何在 YOLOv5 中只在感兴趣的区域进行检测?
- javascript - 如何返回 Mongoose 嵌套的对象数组
- angular - Ionic:如何强制以编程方式从 DOM 中“弹出”页面(无需按下 UI 后退按钮)