首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WxMaxima解方程导出复数?

WxMaxima解方程导出复数?
EN

Stack Overflow用户
提问于 2021-05-03 23:00:43
回答 2查看 60关注 0票数 1

我在试着解“u”的方程"eq“。我如何告诉maxima我只想要积极的结果,这是最好的方法var : abs(mu), res;吗?但是,我的主要问题是,结果包含%i,这是从哪里来的?难道不应该像我在“手工”-calculation中演示的那样,在R中解决这个问题,而不需要复杂的数字吗?

算术解决方案:

代码语言:javascript
复制
(%i16)  eq: RN^2 = R^2+N^2;
(eq)    (121*G^2*h2^2*t1^2)/(100*h1^2*t2^2)=(G^2*v^2)/(4*mu^2)+G^2/4
(%i20)  res: solve(eq,mu); var : abs(mu), res; expand(var); res, numer;
(res)   [mu=-(5*%i*h1*t2*v)/sqrt(25*h1^2*t2^2-121*h2^2*t1^2),mu=(5*%i*h1*t2*v)/sqrt(25*h1^2*t2^2-121*h2^2*t1^2)]
(var)   5*abs(h1)*abs(t2)*abs(1/sqrt(25*h1^2*t2^2-121*h2^2*t1^2))*abs(v)
(%o19)  5*abs(h1)*abs(t2)*abs(1/sqrt(25*h1^2*t2^2-121*h2^2*t1^2))*abs(v)
(%o20)  [mu=-(5*%i*h1*t2*v)/(25*h1^2*t2^2-121*h2^2*t1^2)^0.5,mu=(5*%i*h1*t2*v)/(25*h1^2*t2^2-121*h2^2*t1^2)^0.5]

数值解决方案:

代码语言:javascript
复制
(%i26)  t1: 64`mm;
    t2: 33`mm;
    h1: 47`mm;
    h2: 28`mm;
    v: 2;
(t1)    64 ` mm
(t2)    33 ` mm
(h1)    47 ` mm
(h2)    28 ` mm
(v) 2
(%i42)  res: solve(eq,mu); var : abs(mu), res; var, numer; res, numer;
(res)   [mu=-(5*%i*h1*t2*v)/sqrt(25*h1^2*t2^2-121*h2^2*t1^2),mu=(5*%i*h1*t2*v)/sqrt(25*h1^2*t2^2-121*h2^2*t1^2)]
(var)   1410/sqrt(2714239)
(%o41)  0.8558449047226222
(%o42)  [mu=-(0.8558449047226222*%i)/(-1)^0.5,mu=(0.8558449047226222*%i)/(-1)^0.5]

手工解算(省略否定结果):https://www.bilder-upload.eu/bild-07c372-1620053087.png.html

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-04 06:13:25

如果我没记错的话,只有当121*h2^2*t1^2 > 25*h1^2*t2^2时,结果才是真实的。

所以:

代码语言:javascript
复制
  ​eq: (121*G^2*h2^2*t1^2)/(100*h1^2*t2^2)=(G^2*v^2)/(4*mu^2)+G^2/4;
  ​assume ( 121*h2^2*t1^2 > 25*h1^2*t2^2 );
  ​solve( eq, mu);
         ​=> [mu = -(5*h1*t2*v)/sqrt(121*h2^2*t1^2-25*h1^2*t2^2),
             mu =  (5*h1*t2*v)/sqrt(121*h2^2*t1^2-25*h1^2*t2^2) ]

你是如何找到这个神奇的不等式的呢?好的,你不带它运行solve,注意有一个平方根,它可能有一个负参数……

票数 3
EN

Stack Overflow用户

发布于 2021-05-05 04:18:38

至少部分原因是Maxima将sqrt(-b^2/(c - a))简化为%i*abs(b)/sqrt(c - a)而不是abs(b)/sqrt(a - c)。另一方面,sqrt(b^2/(a - c))简化为abs(b)/sqrt(a - c)

我在想,也许获得免费%i结果的一种方法是将sqrt(-b^2/(c - a))重新排列为sqrt(b^2/(a - c)),然后让内置的简化程序在上面工作。(tellsimp实现了这一点--在内置简化程序之前应用tellsimp规则,而在之后应用tellsimpafter规则。)

我尝试过定义一个合适的tellsimp规则,但我无法找到适用于所给示例的规则。如果有兴趣,我可以发布我的尝试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67371201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档