1、如果T=0,(R无所谓是不是0)那么a=0,b=0 or v (两个解)
2、如果RT不等于0(也就是R和T都不为0)而且v不等于0,那么a=9RTv/8,b=v/3
3、如果T=0,R=0,那么a=0,b=0 or v (比照第1种情况)
具体的解要根据你所解方程的实际情况来定看题中有没有默认的对R和T的限制这个方程可以求符号解啊,虽然答案里用到了特殊函数,但是稍微带入下具体数值求个数值解也是可以的:
eqn
=
r'[t]^2
==
c
r[t]^2
+
2
k^2
r[t]
-
h^2/r[t];
DSolve[eqn,
r[t],
t]
假如想直接来数值解就要用NDSolve,当然还要补相应的边界条件和具体参数,语法与上面的大同小异,看看帮助吧。=号才是赋值,->这个是替换,如果对z赋值了才画出的是一条直线,
z = Solve[k100 + 1 == 101, k] / Rule -> Set
Plot[z, {x, -1, 1}]
当然也可以这样赋值
z = Solve[k100 + 1 == 101, k]
Plot[k / z, {x, -1, 1}]
这样的话k就没有被赋值,替换的效果,这样的话以后用k这个变量前就不用清除了,否则的话,重新运行那个解方程的就会出错,因为k不是变量了,要Clear掉,所以说替换在mathematica中是非常强大的。我怎么有结果啊——
{{beta -> -ArcCos[(2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> -ArcCos[(R x^3 + R x y^2 - Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta -> -ArcCos[(
2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> ArcCos[(R x^3 + R x y^2 - Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta -> -ArcCos[(
2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> -ArcCos[(R x^3 + R x y^2 + Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta -> -ArcCos[(
2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> ArcCos[(R x^3 + R x y^2 + Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta ->
ArcCos[(2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> -ArcCos[(R x^3 + R x y^2 - Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta ->
ArcCos[(2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> ArcCos[(R x^3 + R x y^2 - Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta ->
ArcCos[(2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> -ArcCos[(R x^3 + R x y^2 + Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}, {beta ->
ArcCos[(2 R^2 - x^2 - y^2)/(2 R^2)],
alpha -> ArcCos[(R x^3 + R x y^2 + Sqrt[
4 R^4 x^2 y^2 - R^2 x^4 y^2 + 4 R^4 y^4 - 2 R^2 x^2 y^4 -
R^2 y^6])/(2 (R^2 x^2 + R^2 y^2))]}}
代码如下:
Bsx11 = (30762 (1 x^2 - 0414935 x z + 1 y^2 - 187042 y z -
2 z^2) Sqrt[
x^2 + y^2 + z^3])/(1 x^2 + 1 y^2 + 1 z^3)^3; Bsy11 = (
192475 (1 x^2 + 0296927 x z + 1 y^2 + 482508 y z - 2 z^2) Sqrt[
x^2 + y^2 + z^3])/(1 x^2 + 1 y^2 + 1 z^3)^3;
Bsz11 = (347686 (1 x^2 + 312785 x z + 1 y^2 - 212708 y z -
2 z^2) Sqrt[x^2 + y^2 + z^3])/(1 x^2 + 1 y^2 + 1 z^3)^3;
ans = NSolve[{Bsx11 == 10, Bsy11 == 8, Bsz11 == -6}, {x, y, z}]
{X, Y, Z} = Table[Null, {i, 3}, {j, Length[ans]}]
For[i = 1; j = 1, i <= Length[ans],
i++, {a, b, c} = Im[{x, y, z} / ans[[i]]];
If[a <= 1/10^10 && b <= 1/10^10 &&
c <= 1/10^10, {X[[j]], Y[[j]], Z[[j]]} = {x, y, z} / ans[[i]]; j++]]
{x, y, z} = {X[[1 ;; j - 1]], Y[[1 ;; j - 1]], Z[[1 ;; j - 1]]}
Remove[X, Y, Z];(清除不用的变量)
因为是数值计算,按照虚部的绝对值小于或等于10^-10界定是不是实数,实际使用时可以改成自己想要的精度。这里得到的结果要这样引用:
x[[i]],y[[i]],z[[i]]为一组解,1<=i<=j-1,没有解时为空集,j-1为0。
maple是不错的选择,可能你为了计算连贯不愿换软件,随便选择吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)