meili 发表于 2022-10-27 15:07:46

【mathematica解方程组x^2-y=1,x+y^2=0求解此方程组并应用变量替换验证】

<p>问题:【mathematica解方程组x^2-y=1,x+y^2=0求解此方程组并应用变量替换验证】
<p>答案:↓↓↓<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">汪柏林的回答:<div class="content-b">网友采纳  什么叫用变量替换验证啊……难道是这样?:  eqn={x^2-y==1,x+y^2==0};  sol=Solve  eqn/.N@sol<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">李保建的回答:<div class="content-b">网友采纳  请问最后一句是什么意思<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">汪柏林的回答:<div class="content-b">网友采纳  我以为你的”变量替换验证“是指反代检验,所以就写了这一句,怎么,你要的不是这个?至于“/.(ReplaceAll)”和”N“的含义,你可以看看帮助。<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">李保建的回答:<div class="content-b">网友采纳  我要的好像就是这个谢谢了我知道那个/.是不是全部替换的意思但是再往后没读懂T_T<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">汪柏林的回答:<div class="content-b">网友采纳  ReplaceAll是全部替换,N是取数值值,因为这里的结果根式比较复杂,所以这里用这个提高了下运算速度。@是[]的简写,也就是说连起来是N[]。<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">李保建的回答:<div class="content-b">网友采纳  哦谢谢啦那最后检验的第三个解为什么会出现一个False<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">汪柏林的回答:<div class="content-b">网友采纳  ……好吧,我都没注意到。我运算精度没取够:eqn={x^2-y==1,x+y^2==0}sol=Solve;eqn/.N取到16位精度就可以了。其实这里最正确的做法是在最后一行使用FullSimplify但是这个的结果根式比较复杂,这样子计算速度太慢了,我不愿等……等下,我想到个满足全部要求的方法了。那就是先避免对原方程组(本质上是个四次方程组)的显式求解(不使用根式表示解,而使用方程表示解),然后单独化出一个显式根式解,再对非显式解去用FullSimplify,这样化简会很快:eqn={x^2-y==1,x+y^2==0}sol=SolveToRadicals@solFullSimplify
页: [1]
查看完整版本: 【mathematica解方程组x^2-y=1,x+y^2=0求解此方程组并应用变量替换验证】