我在我的教程中得到了这个问题,我可以做部分a)和b)。你有没有 c)部分的任何想法?
问题:
符号解决数量r=y/x
的以下等式:
3/y^4==3/x^4+a/(x+2y)^4
(a)使用Map或Thread对等式的两边执行替换y->r x
。
ans:
3/(r^4 x^4) == 3/x^4 + a/(x + 2 r x)^4
(b)绘制a\[Element]{-1,1}
的解决方案。对于a\[Element]{-1,1}
,有多少解决方案真正有价值?这个数字是否取决于a
?
ans: Graph and 4 solutions and no its doesn't depend on `a`.
(c)通过让a
在-1和1之间运行,在上面获得的解决方案中以0.02为步长构建数值解。使用Cases
选择正确的解决方案,并使用ListPlot
绘制区间a\[Element]{-1,1}
中发生的所有实际解决方案。
Ans:不知道。
答案 0 :(得分:1)
您可以使用Eliminate
快捷方式a)和b)。您也可以要求Mathematica在实数上求解方程式。 (第8节):
In[538]:= eq =
Eliminate[3/y^4 == 3/x^4 + a/(x + 2 y)^4 && r == y/x, {x, y}]
Out[538]= -24 r - 72 r^2 - 96 r^3 + (-45 + a) r^4 + 24 r^5 + 72 r^6 +
96 r^7 + 48 r^8 == 3
In[539]:= r /. Solve[eq && -1 < a < 1, r, Reals]
Out[539]= {ConditionalExpression[
Root[-3 - 24 #1 - 72 #1^2 - 96 #1^3 + (-45 + a) #1^4 + 24 #1^5 +
72 #1^6 + 96 #1^7 + 48 #1^8 &, 1], -1 < a < 0 ||
0 < a < Root[-184528125 + 267553125 #1 + 11238750 #1^2 +
110250 #1^3 - 225 #1^4 + #1^5 &, 1] ||
Root[-184528125 + 267553125 #1 + 11238750 #1^2 + 110250 #1^3 -
225 #1^4 + #1^5 &, 1] < a < 1],
ConditionalExpression[
Root[-3 - 24 #1 - 72 #1^2 - 96 #1^3 + (-45 + a) #1^4 + 24 #1^5 +
72 #1^6 + 96 #1^7 + 48 #1^8 &, 2], -1 < a < 0 ||
0 < a < Root[-184528125 + 267553125 #1 + 11238750 #1^2 +
110250 #1^3 - 225 #1^4 + #1^5 &, 1] ||
Root[-184528125 + 267553125 #1 + 11238750 #1^2 + 110250 #1^3 -
225 #1^4 + #1^5 &, 1] < a < 1],
ConditionalExpression[
Root[-3 - 24 #1 - 72 #1^2 - 96 #1^3 + (-45 + a) #1^4 + 24 #1^5 +
72 #1^6 + 96 #1^7 + 48 #1^8 &, 3],
0 < a < Root[-184528125 + 267553125 #1 + 11238750 #1^2 +
110250 #1^3 - 225 #1^4 + #1^5 &, 1]],
ConditionalExpression[
Root[-3 - 24 #1 - 72 #1^2 - 96 #1^3 + (-45 + a) #1^4 + 24 #1^5 +
72 #1^6 + 96 #1^7 + 48 #1^8 &, 4],
0 < a < Root[-184528125 + 267553125 #1 + 11238750 #1^2 +
110250 #1^3 - 225 #1^4 + #1^5 &, 1]]}
然后您可以绘制最终的解决方案:
Out[539]
为您提供精确的代数解决方案以及它们是真实的条件。因此,当a
介于0和Root[-184528125 + 267553125 #1 + 11238750 #1^2 + 110250 #1^3 - 225 #1^4 + #1^5 &, 1]
现在,让我们来看c)。您应该使用NSolve
来构建所有解决方案。然后,按照建议Cases
提取实际解决方案,然后ListPlot
:
Table[Thread[{a,
Cases[r /. NSolve[eq, r], r_ /; Im[r] == 0]}], {a, -1, 1,
0.02}] // ListPlot