公告:1)网站程序升级:Q2A升级到1.8.6,Wordpress升级到5.7.2
2)修复了头像加载慢与提交问题反应慢等问题
2021-06-16

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

0 投票
688 浏览

Clear["`*"];

\[Epsilon]0=8.85*^-12;
\[Alpha]1=4.5*^5 (-100+T);
\[Alpha]11=-1.873*^8;
\[Alpha]111=8.852*^9;
\[Alpha]1111=9.465*^10;
\[Alpha]12=8.86*^8;
\[Alpha]112=-8.502*^9;
\[Alpha]1112=8.779*^9;
\[Alpha]1122=9.785*^10;
\[Alpha]123=-4.734*^9;
\[Alpha]1123=5.846*^10;

energy=\[Alpha]1*(px^2+py^2+pz^2)+\[Alpha]11*(px^4+py^4+pz^4)+\[Alpha]12*((px*py)^2+(py*pz)^2+(px*pz)^2)+\[Alpha]111*(px^6+py^6+pz^6)+\[Alpha]112*((py^4+pz^4)*px^2+(px^4+pz^4)*py^2+(px^4+py^4)*pz^2)+\[Alpha]123*(px*py*pz)^2+\[Alpha]1111*(px^8+py^8+pz^8)+\[Alpha]1112*((py^6+pz^6)*px^2+(px^6+pz^6)*py^2+(px^6+py^6)*pz^2)+\[Alpha]1122*((px*py)^4+(py*pz)^4+(px*pz)^4)+\[Alpha]1123*((px*py*pz^2)^2+(pz*px*py^2)^2+(pz*py*px^2)^2);

T=75;
"NMinimize"
p=NMinimize[energy ,{px,py,pz}]
" "
"NSolve"
F1=D[energy,px];
F2=D[energy,py];
F3=D[energy,pz];
q=NSolve[{F1==0,F2==0,F3==0},{px,py,pz},Reals];
FF=energy/.q;
n=Flatten[Position[FF,Min[FF]]];
{FF[[n[[1]]]],q[[n[[1]]]]}



这上面的是代码,一个三元8次函数,我要求最小值,但是用两种方法求出来的却不一样,运算后结果如下

 


NMinimize
{-206335.,{px->-0.127656,py->-7.94959*10^-22,pz->0.127656}}
 
NSolve
{-224139.,{px->0,py->0.154313,pz->0}}



很明显NSolve解出来的值更小,但是用解方程的方法太浪费时间了,求解决办法。

用户: Stargazer (161 分)
修改于 用户:Stargazer

1个回答

+4 投票
 
已采纳

不完全解答。

在帮助文档中明确说了:

"If f and cons are linear, NMinimize can always find global minima, over both real and integer values.Otherwise, NMinimize may sometimes find only a local minimum. "

寻找最小值的算法有很多很多,多的足够写书了。恰好默认算法不够完美,恰好随便改改就能得到和NSolve相同的结果。

NMinimize[energy, {px, py, pz}, Method -> "DifferentialEvolution"]

当然,这个结果是不是真正的全局最小值,我也不知道。

 

用户: 苹果 (2.2k 分)
采纳于 用户:Stargazer
哦哦,这个不错,我多试试几个奇异点看看
太赞了,至少解决了我目前的问题,苹果威武。
...