TSC999 发表于 2021-2-9 23:38:46

如何用软件求一个最大值

有一个椭圆 \( \frac{x^2}{a^2}+\frac{y^2}{b^2}=1   \),将这个椭圆逆时针向旋转 \(\theta\) 角后,这个倾斜的椭圆方程为:

\( \frac{(x\cos\theta+y\sin\theta)^2}{a^2}+\frac{(-x\sin\theta+y\cos\theta)^2}{b^2} = 1\) -----------------------(1)

问题: 当 \(x \) 取何值时 \( y \) 有最大值?

答案是当 \(x=\frac{(a^2-b^2)\sin\theta\cos\theta}{\sqrt{a^2\sin^2\theta+b^2\cos^2\theta}} \) 时\( y \) 有最大值 \(y=\sqrt{a^2\sin^2\theta+b^2\cos^2\theta} \)。

现在的问题是,如果用 mathematica 直接从公式 (1) 求最大值,如何写程序代码?

我写了一个,如下。勉强能用,计算很慢不说,给出的结果从形式上也很难看。

Clear["Global`*"];
FullSimplify@
Maximize[{y, (x Cos[\] + y Sin[\])^2/
   a^2 + (-x Sin[\] + y Cos[\])^2/b^2 == 1,
   a >= b > 0, Sin[\] > 0, y > 0}, {x}]

不知如何改进上面这个代码?
页: [1]
查看完整版本: 如何用软件求一个最大值