怎么用Mathematica证明简单的不等式问题?

2022年5月21日 25点热度 0人点赞

设x,y,z是实数,求证:x^2+y^2+z^2>=x y+y z+z x。

这个问题,用初等数学的知识就可以很容易证明:

左边-右边=[(x-y)^2+(y-z)^2+(z-x)^2]/2>=0.

不过,还是要折腾一下Mathematica,看看Mathematica怎么证明这个不等式。

工具/原料

  • 电脑
  • Mathematica

方法/步骤

  1. 1

    FullSimplify[x^2+y^2+z^2>=x y+y z+z x]

    直接化简表达式,没效果。

  2. 2

    如果约定x、y、z都是实数,就会返回True,说明这个结论是对的。

    FullSimplify[x^2+y^2+z^2>=x y+y z+z x,

    Refine[Element[{x,y,z},Reals]]]

  3. 3

    用Mathematica对x^2+y^2+z^2-x y-y z-z x进行配方,使之等于

    (b*x+c*y+a*z)^2+(c*x+a*y+b*z)^2+(a*x+b*y+c*z)^2

    只要求出a、b、c的值来,就行了。

    f[x_,y_,z_]:=

    (({a,b,c}.#&/@Table[RotateLeft[{x,y,z},n],{n,0,2}])^2//Total)

    -(x^2+y^2+z^2-x y-y z-z x)

    sol=Solve[f[0,0,1]==0&&f[1,0,0]==0&&f[0,1,0]==0&&f[1,1,1]==0&&f[1,2,3]==0,{a,b,c}]

  4. 4

    把a、b、c代入进去,得到配方式:

    ({a,b,c}.#&/@Table[RotateLeft[{x,y,z},n],{n,0,2}])^2/.sol[[1]]//Total

  5. 5

    由于b、c都是用a来表示的,只有2-3 a^2≥0,才能保证b和c都是实数。

    所以a^2≤2/3。

    代入一个合适的数字a=0,恰好得到本文开始的那个式子。

    (({a,b,c}.#&/@Table[RotateLeft[{x,y,z},n],{n,0,2}])^2/.sol[[1]]//Total)/.a->0

  6. 6

    若是令a=Sqrt[1/3],那么配方式就变成了:

    (({a,b,c}.#&/@Table[RotateLeft[{x,y,z},n],{n,0,2}]/.sol[[1]])/.a->Sqrt[1/3]//FullSimplify)^2//Total

    END

注意事项

  • 用Mathematica证明复杂的不等式,现在我还没找到方法。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论