Wolfram mathematica 用Mathematica中的实正参数求解

Wolfram mathematica 用Mathematica中的实正参数求解,wolfram-mathematica,solver,Wolfram Mathematica,Solver,我想在Mathematica中求解eta 解算[-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]-(1-eta)ng+(1-eta)ns p==0,eta] 所有参数均为实和正,eta为实和正 如何包含这些假设 有时,通常对于较简单的问题,您可以输入以下内容 Reduce[-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]-(1-eta)n g+(1-eta)ns P==0 && a>0 && b>0

我想在Mathematica中求解eta

解算[-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]-(1-eta)ng+(1-eta)ns p==0,eta]

所有参数均为实和正,eta为实和正


如何包含这些假设

有时,通常对于较简单的问题,您可以输入以下内容

Reduce[-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]-(1-eta)n g+(1-eta)ns P==0 &&
  a>0 && b>0 && c>0 && n>0 && g>0 && ns>0 && P>0 && eta>0, eta]
等待并希望它结束。这并没有在我愿意等待的时间内结束,因此我采用了不同的方法

注意:我特意在这里留下了一些In[]和Out[],以便您可以确切地看到我使用Mathematica执行步骤的位置。所有其他我手动操作的行

对于任何问题,在Mathematica中至少有十几种不同的解决方法。我这样做是为了在你可能会等上几分钟或几个小时,却永远看不到结果会自动计算出来的时候,迅速给你一个答案

-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]-(1-eta)n g+(1-eta)ns P==0

-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)]==(1-eta)n g-(1-eta)ns P

In[1]:=Expand[(-Sqrt[1-(a eta b)]+Sqrt[1-(a eta c)])^2]==((1-eta)n g-(1-eta)ns P)^2

Out[1]=2-a b eta-a c eta-2 Sqrt[1-a b eta]Sqrt[1-a c eta]==((1-eta)g n-(1-eta)ns P)^2

-2 Sqrt[1-a b eta]Sqrt[1-a c eta]==((1-eta)g n-(1-eta)ns P)^2-(2-a b eta-a c eta)

(-2 Sqrt[1-a b eta]Sqrt[1-a c eta])^2==(((1-eta)g n-(1-eta)ns P)^2-(2-a b eta-a c eta))^2

4(1-a b eta)(1-a c eta)==(((1-eta)g n-(1-eta)ns P)^2-(2-a b eta-a c eta))^2

In[2]:= Simplify[Reduce[4(1-a b eta)(1-a c eta)==(((1-eta)g n-(1-eta)ns P)^2-
  (2-a b eta-a c eta))^2,eta],a>0 && b>0 && c>0 && n>0 && g>0 && ns>0 && P>0 && eta>0]

Out[2]= (b==c || g n!=ns P) && (
eta == Root[-4 g^2 n^2+g^4 n^4+8 g n ns P-4 g^3 n^3 ns P-4 ns^2 P^2+
 6 g^2 n^2 ns^2 P^2-4 g n ns^3 P^3+ns^4 P^4+(8 g^2 n^2+2 a b g^2 n^2+
 2 a c g^2 n^2-4 g^4 n^4-16 g n ns P-4 a b g n ns P-4 a c g n ns P+
 16 g^3 n^3 ns P+8 ns^2 P^2+2 a b ns^2 P^2+2 a c ns^2 P^2-
 24 g^2 n^2 ns^2 P^2+16 g n ns^3 P^3-4 ns^4 P^4) #1+(a^2 b^2-2 a^2 b c+
 a^2 c^2-4 g^2 n^2-4 a b g^2 n^2-4 a c g^2 n^2+6 g^4 n^4+8 g n ns P+
 8 a b g n ns P+8 a c g n ns P-24 g^3 n^3 ns P-4 ns^2 P^2-4 a b ns^2 P^2-
 4 a c ns^2 P^2+36 g^2 n^2 ns^2 P^2-24 g n ns^3 P^3+6 ns^4 P^4) #1^2+
 (2 a b g^2 n^2+2 a c g^2 n^2-4 g^4 n^4-4 a b g n ns P-4 a c g n ns P+
 16 g^3 n^3 ns P+2 a b ns^2 P^2+2 a c ns^2 P^2-24 g^2 n^2 ns^2 P^2+
 16 g n ns^3 P^3-4 ns^4 P^4) #1^3+(g^4 n^4-4 g^3 n^3 ns P+
 6 g^2 n^2 ns^2 P^2-4 g n ns^3 P^3+ns^4 P^4) #1^4 &,1] ||
eta == Root[...more...&,2] ||
eta == Root[...more...&,3] ||
eta == Root[...more...&,4] ||
g n == ns P)

In[3]:= ToRadicals[eta == Root[...same...&,1]]

Out[3]= eta==...aTrulyHugeResultForTheFirstOfFourRoots...

仔细检查所有这些,了解它是如何完成的

因为你只有两个平方根,其他的都是正数,你可以将除平方根以外的所有东西都推到RHS,两边都是正数,将除Sqrt[]Sqrt[]以外的所有东西推到右手边,两边都是正数,扩展,收集eta,减少eta,使用假设a>0&&b>0&&c>0&&n>0&&g>0&&ns>0&&P>0&&eta>0进行简化,最终得到eta中四次方程的四个根[]。如果你真的想要它,你可以使用ToRadicals,并为eta获得一个惊人的大解决方案。谢谢。我对mathematica很陌生,我的问题更多的是如何写,在哪里写。