怎样用Mathematica解带字母的方程组

怎样用Mathematica解带字母的方程组,第1张

这个方程组的答案已经给你了因为方程的参数取值范围不确定,不同的参数取值会给出不同的解所以才给出了参数在一定条件下的解比如说这个out的意思是:
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是不错的选择,可能你为了计算连贯不愿换软件,随便选择吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12710643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存