login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

## Solving Equations

What method is used to solve equation in Axiom?

fricas
solve(sin(x)=4/5,x)
 (1)
Type: List(Equation(Expression(Integer)))
fricas
solve([a=4,sin(x)=a/5],[a,x])
 (2)
Type: List(List(Equation(Expression(Integer))))

In the following, a workaround is necessary because of bug #128:

fricas
)set output algebra on

fricas
)set output tex off
solve([V_q*U_q+V_l*U_l+V_d*U_d+V_a*U_a=U_ma, _ V_q*rho_q+V_l*rho_l+ V_d*rho_d+V_a*rho_a=rho_ma, _ V_q*t_q+V_l*t_l+V_d*t_d+V_a*t_a=t_ma, _ V_q+V_l+V_d+V_a=1], _ [V_q,V_l,V_d,V_a] )
(3) [ [ V_q = ((U_d - U_a)rho_l + (- U_l + U_a)rho_d + (U_l - U_d)rho_a)t_ma + ((- U_d + U_a)rho_ma + (U_ma - U_a)rho_d + (- U_ma + U_d)rho_a)t_l + ((U_l - U_a)rho_ma + (- U_ma + U_a)rho_l + (U_ma - U_l)rho_a)t_d + ((- U_l + U_d)rho_ma + (U_ma - U_d)rho_l + (- U_ma + U_l)rho_d)t_a / ((U_d - U_a)rho_l + (- U_l + U_a)rho_d + (U_l - U_d)rho_a)t_q + ((- U_d + U_a)rho_q + (U_q - U_a)rho_d + (- U_q + U_d)rho_a)t_l + ((U_l - U_a)rho_q + (- U_q + U_a)rho_l + (U_q - U_l)rho_a)t_d + ((- U_l + U_d)rho_q + (U_q - U_d)rho_l + (- U_q + U_l)rho_d)t_a ,
V_l = ((U_d - U_a)rho_ma + (- U_ma + U_a)rho_d + (U_ma - U_d)rho_a)t_q + ((- U_d + U_a)rho_q + (U_q - U_a)rho_d + (- U_q + U_d)rho_a)t_ma + ((U_ma - U_a)rho_q + (- U_q + U_a)rho_ma + (U_q - U_ma)rho_a)t_d + ((- U_ma + U_d)rho_q + (U_q - U_d)rho_ma + (- U_q + U_ma)rho_d)t_a / ((U_d - U_a)rho_l + (- U_l + U_a)rho_d + (U_l - U_d)rho_a)t_q + ((- U_d + U_a)rho_q + (U_q - U_a)rho_d + (- U_q + U_d)rho_a)t_l + ((U_l - U_a)rho_q + (- U_q + U_a)rho_l + (U_q - U_l)rho_a)t_d + ((- U_l + U_d)rho_q + (U_q - U_d)rho_l + (- U_q + U_l)rho_d)t_a ,
V_d = ((- U_l + U_a)rho_ma + (U_ma - U_a)rho_l + (- U_ma + U_l)rho_a)t_q + ((U_l - U_a)rho_q + (- U_q + U_a)rho_l + (U_q - U_l)rho_a)t_ma + ((- U_ma + U_a)rho_q + (U_q - U_a)rho_ma + (- U_q + U_ma)rho_a)t_l + ((U_ma - U_l)rho_q + (- U_q + U_l)rho_ma + (U_q - U_ma)rho_l)t_a / ((U_d - U_a)rho_l + (- U_l + U_a)rho_d + (U_l - U_d)rho_a)t_q + ((- U_d + U_a)rho_q + (U_q - U_a)rho_d + (- U_q + U_d)rho_a)t_l + ((U_l - U_a)rho_q + (- U_q + U_a)rho_l + (U_q - U_l)rho_a)t_d + ((- U_l + U_d)rho_q + (U_q - U_d)rho_l + (- U_q + U_l)rho_d)t_a ,
V_a = ((U_l - U_d)rho_ma + (- U_ma + U_d)rho_l + (U_ma - U_l)rho_d)t_q + ((- U_l + U_d)rho_q + (U_q - U_d)rho_l + (- U_q + U_l)rho_d)t_ma + ((U_ma - U_d)rho_q + (- U_q + U_d)rho_ma + (U_q - U_ma)rho_d)t_l + ((- U_ma + U_l)rho_q + (U_q - U_l)rho_ma + (- U_q + U_ma)rho_l)t_d / ((U_d - U_a)rho_l + (- U_l + U_a)rho_d + (U_l - U_d)rho_a)t_q + ((- U_d + U_a)rho_q + (U_q - U_a)rho_d + (- U_q + U_d)rho_a)t_l + ((U_l - U_a)rho_q + (- U_q + U_a)rho_l + (U_q - U_l)rho_a)t_d + ((- U_l + U_d)rho_q + (U_q - U_d)rho_l + (- U_q + U_l)rho_d)t_a ] ]
Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas
)set output algebra off

fricas
)set output tex on

fricas
solve(v^4+b*v^3+c*v^2+d=0,v)
 (3)
Type: List(Equation(Fraction(Polynomial(Integer))))

This didn't work since solve returns solutions expressible as members of the ground field only. Above, the ground field of defaults to Fraction Polynomial Integer...

Thus, the proper call is

fricas
solve((v^4+b*v^3+c*v^2+d)::EXPR INT=0,v)
 (4)
Type: List(Equation(Expression(Integer)))

But really, you should use 'zeroOf':

fricas
zeroOf(v^4+b*v^3+c*v^2+d, v)
 (5)
Type: Expression(Integer)

In the following, we have to do three things:

• convert the list of Fraction Polynomial Float to a list of Fraction Polynomial Integer, since solve can only handle the latter,
• ask for an approximate solution and
• set precision to a lower value then 68, since it would take too much time otherwise

Furthermore, it's %pi, not %PI.

Here is one way to use macros and _ to define more complex names that print nicely in LaTeX form:

fricas
K_sc  ==> K___{sc_}
Type: Void
fricas
mu_sc ==> _\mu___{sc_}
Type: Void

fricas
digits(7);
Type: PositiveInteger?
fricas
l:=  [0.01*(2.25-K_sc)*K_sc/(0.01*%pi*mu_sc*(mu_sc+3.0*K_sc)/                         _
(4.0*mu_sc+3.0*K_sc)+2.25)+0.7*(37.0-K_sc)*(4.0*mu_sc/3.0+K_sc)/                _
(4.0*mu_sc/3.0+37.0)+0.29*(2.25-K_sc)*(4.0*mu_sc/3.0+K_sc)/                     _
(4.0*mu_sc/3.0+2.25),                                                           _
-0.002*mu_sc*(2.0*(2.0*mu_sc/3.0+2.25)/                                         _
(0.01*%pi*mu_sc*(mu_sc+3.0*K_sc)/                                               _
(4.0*mu_sc+3.0*K_sc)+2.25)+800.0*mu_sc/                                         _
(%pi*(2.0*mu_sc*(mu_sc+3.0*K_sc)/                                               _
(4.0*mu_sc+3.0*K_sc)+mu_sc))+1.0)+0.7*(44.0-mu_sc)*(mu_sc*(8.0*mu_sc+9.0*K_sc)/ _
(6.0*(2.0*mu_sc+K_sc))+mu_sc)/                                                  _
(mu_sc*(8.0*mu_sc+9.0*K_sc)/                                                    _
(6.0*(2.0*mu_sc+K_sc))+44.0)-1.74*(2.0*mu_sc+K_sc)*(mu_sc*(8.0*mu_sc+9.0*K_sc)/ _
(6.0*(2.0*mu_sc+K_sc))+mu_sc)/(8.0*mu_sc+9.0*K_sc)]
 (6)
Type: List(Fraction(Polynomial(Float)))
fricas
-- solve exactly for fractions
a:=solve (l::LIST FRAC POLY FRAC INT::LIST FRAC POLY INT);
Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas
-- Number of results:
#a
 (7)
Type: PositiveInteger?
fricas
-- But only the first one is of interest.
-- Display it as a floating point result
a.1::List Equation Fraction POLY FLOAT
 (8)
Type: List(Equation(Fraction(Polynomial(Float))))
fricas
-- Now check it
map(x+->subst(x,(a.1)::List Equation FRAC POLY FLOAT),l)
 (9)
Type: List(Expression(Float))

fricas
)clear all
All user variables and function definitions have been cleared.

fricas
solve((x=-1+x^2)::EQ EXPR INT,x)
 (10)
Type: List(Equation(Expression(Integer)))

fricas
solve(a*x^2+b*x+c=0,x)
 (11)
Type: List(Equation(Fraction(Polynomial(Integer))))

fricas
solve(a*x+b=0,x)
 (12)
Type: List(Equation(Fraction(Polynomial(Integer))))

fricas
solve(x^2+x-1,x)
 (13)
Type: List(Equation(Fraction(Polynomial(Integer))))

fricas
 (14)
Type: List(Equation(Expression(Integer)))

This doesn't work:
fricas
L := [ A = 2*P1+P2, B = 2*P2+P1, C = 2*Q1+Q2, D = 2*Q2+Q1]
 (15)
Type: List(Equation(Polynomial(Integer)))
fricas
solve(L, [P1,P2])
 (16)
Type: List(List(Equation(Fraction(Polynomial(Integer)))))

The reason is that above Q1 and Q2 are parameters. In such case FriCAS seeks solution in rational functions of Q1 and Q2 and there is no such solution. Instead one should solve also for Q1 and Q2:

fricas
)set output tex off

fricas
)set output algebra on
solve(L, [P1,P2,Q1,Q2])
- B + 2A 2B - A - D + 2C 2D - C (8) [[P1= --------,P2= ------,Q1= --------,Q2= ------]] 3 3 3 3
Type: List(List(Equation(Fraction(Polynomial(Integer)))))

fricas
(9) [ x = 2 +---+ 2 (- 9a \|- 3 + 9a ) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ^ 2 + +---+ (- 3a b\|- 3 - 3a b) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 + 2 6a c - 2b / 2 +---+ 2 (9a \|- 3 + 9a ) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ,
x = 2 +---+ 2 (- 9a \|- 3 - 9a ) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ^ 2 + +---+ (- 3a b\|- 3 + 3a b) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 + 2 - 6a c + 2b / 2 +---+ 2 (9a \|- 3 - 9a ) * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ,
x = 2 9a * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ^ 2 + - 3a b * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 + 2 - 3a c + b / 2 9a * ROOT +------------------------------------------+ | 2 2 3 3 2 2 3 |27a d + (- 18a b c + 4b )d + 4a c - b c 2 54a |------------------------------------------ - 27a d | 4 \| 108a + 3 9a b c - 2b / 3 54a , 3 ]
Type: List(Equation(Expression(Integer)))
fricas
)set output algebra off

fricas
)set output tex on

fricas
solve(x^2=y,x)
 (17)
Type: List(Equation(Fraction(Polynomial(Integer))))

fricas
solve(x3=x0+(x1-x0)*t + (x2-x0) *u,u)
 (18)
Type: List(Equation(Fraction(Polynomial(Integer))))

fricas
solve([x+y=3,x-y=1],[x,y])
 (19)
Type: List(List(Equation(Fraction(Polynomial(Integer)))))

An error in the way MathAction folds the LaTeX output from Axiom prevents this expression from displaying properly. As a work-a-round it is necessary to disable the LaTeX output and replace it with a ASCII text equivalent.

fricas
)set output tex off

fricas
)set output algebra on
A:=i=(a*x+c*z+e)/(z+g)
c z + a x + e (13) i= ------------- z + g
Type: Equation(Fraction(Polynomial(Integer)))
fricas
B:=j=(b*x+d*z+f)/(z+g)
d z + b x + f (14) j= ------------- z + g
Type: Equation(Fraction(Polynomial(Integer)))
fricas
solve([A,B],[x,z])
(15) (c g - e)j + (- d g + f)i - c f + d e - a g j + b g i + a f - b e [[x= -------------------------------------,z= ---------------------------]] a j - b i - a d + b c a j - b i - a d + b c
Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas
)set output tex on

fricas
)set output algebra off

fricas
solve(14=x*1.1^x,x)
There are 18 exposed and 3 unexposed library operations named solve having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op solve to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named solve with argument type(s) Equation(Expression(Float)) Variable(x)
Perhaps you should use "@" to indicate the required return type, or "\$" to specify which version of the function you need.

--I don't know --tempo, Thu, 15 Mar 2007 14:15:26 -0600 reply
fricas
)set output algebra on

fricas
)set output tex off
zerosOf((1-a)*x^4+x^3+x^2+x+1,x)
(16) [%x6, %x7,
- ROOT 2 2 2 (- 3a + 6a - 3)%x7 + ((- 2a + 4a - 2)%x6 + 2a - 2)%x7 + 2 2 (- 3a + 6a - 3)%x6 + (2a - 2)%x6 + 4a - 3 + (- a + 1)%x7 + (- a + 1)%x6 + 1 / 2a - 2 ,
ROOT 2 2 2 (- 3a + 6a - 3)%x7 + ((- 2a + 4a - 2)%x6 + 2a - 2)%x7 + 2 2 (- 3a + 6a - 3)%x6 + (2a - 2)%x6 + 4a - 3 + (- a + 1)%x7 + (- a + 1)%x6 + 1 / 2a - 2 ]
Type: List(Expression(Integer))
fricas
)set output algebra off

fricas
)set output tex on

test --faceinjarbydoor, Tue, 22 May 2007 13:53:38 -0500 reply
fricas
solve( dx_p = ( m / b ) * ( c0 - b * dv_p + c0 * log(c0) -     _
c0 * log( c0 - b * dv_p ) + v0 * log(c0) -       _
v0 * log( c0 - b * dv_p ) - ( c0 / b ) ), dv_p )
 (20)
Type: List(Equation(Expression(Integer)))

fricas
solve(((1+sqrt(5))^n-(1-sqrt(5))^n)/(sqrt(5)*2^n)=10^1001, n)
 (21)
Type: List(Equation(Expression(Integer)))

hw problem! --hintzy64, Sun, 14 Oct 2007 21:47:27 -0500 reply
fricas
)set output tex off

fricas
)set output algebra on

fricas
solve([nnH+2*niH+nnCs+2*niCs = n, (niH+niCs)*niH/nnH = SH, (niH+niCs)*niCs/nnCs = SCs, (niH+nnH)/(niCs+nnCs) = alpha],[nnH, niH, nnCs, niCs])
(19) [ [ nnH = 2 2 ((- 2SH + 2SCs)alpha + (- 3SH + 3SCs)alpha - SH + SCs)niCs + 2 2 2 (- 2SH alpha + (- SH - SCs)alpha)n + (- 4SCs SH + 2SCs )alpha + 2 2 (- 6SCs SH + 4SCs )alpha - 2SCs SH + 2SCs * niCs + 2 2 2 SCs alpha n + ((2SCs SH - SCs )alpha + SCs SH - SCs )n / 2 2 (SCs alpha + SCs)n + SCs alpha + SCs ,
niH = 2 ((SH - SCs)alpha + SH - SCs)niCs + 2 2 (SH alpha n + (2SCs SH - SCs )alpha + 2SCs SH - 2SCs )niCs + 2 (- SCs SH + SCs )n / 2 SCs n + SCs ,
nnCs = 2 ((- SH + SCs)alpha - SH + SCs)niCs + (((- SH - SCs)alpha - 2SCs)n - 2SCs SH alpha - 2SCs SH)niCs + 2 SCs n + SCs SH n / 2 2 (SCs alpha + SCs)n + SCs alpha + SCs ,
2 3 ((SH - SCs)alpha + (2SH - 2SCs)alpha + SH - SCs)niCs + 2 2 2 (SH alpha + (SH + SCs)alpha + SCs)n + (2SCs SH - SCs )alpha + 2 2 (5SCs SH - 3SCs )alpha + 3SCs SH - 2SCs * 2 niCs + 2 2 2 2 2 2 ((2SCs alpha - SCs SH + 3SCs )n + 2SCs SH alpha + 2SCs SH)niCs - SCs n + 2 - SCs SH n = 0 ] ]
Type: List(List(Equation(Fraction(Polynomial(Integer)))))

fricas
solve((-v^3 * cos(x) * sin(x)^2 / sqrt(v^2 * cos(x)^2 + 2*a*h) - v^2 * sin(x)^2 + v * cos(x) * sqrt(v^2 * cos(x)^2 + 2 * a * h) + v^2 * cos(x)^2)) / a
>> Error detected within library code: too many variables

 Subject:   Be Bold !! ( 15 subscribers )