[Date Index]
[Thread Index]
[Author Index]
More than one radical
*To*: mathgroup at smc.vnet.net
*Subject*: [mg35720] More than one radical
*From*: "Julio Vera" <jvera at adinet.com.uy>
*Date*: Sat, 27 Jul 2002 06:43:28 -0400 (EDT)
*Sender*: owner-wri-mathgroup at wolfram.com
Hello,
I have a list of expressions. Some of them include radicals. When the
radical exponent is even, and the expression inside the radical is not a
number, the corresponding element will not be defined if the expression
inside the radical is negative. In such cases, I want to replace the
original element by a list of elements which includes the element
itself, and the expressions contained in such radicals.
I found a way to do this for the parcial case in which there is only one
radical of that kind in an element. I tried to do it using ReplaceAll,
but did not succeed. So I used this LONG way.
In[] v1 = {Sqrt[3]*x + 4, 5*x + x^2, 1 + Sqrt[2 + 5*x], (6*x -
1)^(1/5) + 2,
3*x - (2*x - 1)^(1/6), (2 + x^3)^(1/8)}
Out[] {4 + Sqrt[3]*x, 5*x + x^2, 1 + Sqrt[2 + 5*x], 2 + (-1 +
6*x)^(1/5),
3*x - (-1 + 2*x)^(1/6), (2 + x^3)^(1/8)}
In[] =
p1=Position[v1,Power[a_,Rational[1,b_]]/;EvenQ[b]/;NumberQ[a]==True]
Out[] {{3,2},{5,2,2},{6}}
In[] p1f=p1/.{a_Integer,___}=AEa
Out[] {3,5,6}
In[] vv1[{a__}]:=v1[[a]]
In[] =
new1=Table[{v1[[p1f[[i]]]],vv1[p1[[i]]]},{i,Length[p1]}]/.{a_,Power[b_,
Rational[1,_]]}=AE{a,b}
Out[] {{1 + Sqrt[2 + 5*x], 2 + 5*x}, {3*x - (-1 + 2*x)^(1/6), -1 + 2*x},
{(2 + x^3)^(1/8), 2 + x^3}}
In[] s1=ReplacePart[v1,new1,Split[p1f],Split[Range[Length[p1]]]]
Out[] {4 + Sqrt[3]*x, 5*x + x^2, {1 + Sqrt[2 + 5*x], 2 + 5*x}, 2 + (-1 +
6*x)^(1/5),
{3*x - (-1 + 2*x)^(1/6), -1 + 2*x}, {(2 + x^3)^(1/8), 2 + x^3}}
When more than one of these situation occur in an element, this method
does not work.
In[] v3 = {Sqrt[3]*x + 4, 5*x + x^2, 1 + Sqrt[2 - (x^3 - 3*x -
8)^(1/4) + 5*x],
(6*x - 1)^(1/5) + 2, 3*x - (2*x - 1)^(1/6),
(2*x^(1/4) + x^3*(4*x^2 - 3)^(1/10))^(1/8)}
{4 + Sqrt[3]*x, 5*x + x^2, 1 + Sqrt[2 + 5*x - (-8 - 3*x + x^3)^(1/4)],
2 + (-1 + 6*x)^(1/5), 3*x - (-1 + 2*x)^(1/6),
(2*x^(1/4) + x^3*(-3 + 4*x^2)^(1/10))^(1/8)}
What I want to get is
In[] sol3 = {Sqrt[3]*x + 4, 5*x + x^2, {1 + Sqrt[2 - (x^3 - 3*x -
8)^(1/4) + 5*x],
2 - (x^3 - 3*x - 8)^(1/4) + 5*x, x^3 - 3*x - 8}, (6*x - 1)^(1/5) + 2,
{3*x - (2*x - 1)^(1/6), 2*x - 1}, {(2*x^(1/4) + x^3*(4*x^2 -
3)^(1/10))^(1/8),
2*x^(1/4) + x^3*(4*x^2 - 3)^(1/10), x, 4*x^2 - 3}}
I don=B4t see how I can use ReplacePart in this situation, because the
new elements will have different lengths.
In[] =
p3=Position[v3,Power[a_,Rational[1,b_]]/;EvenQ[b]/;NumberQ[a]==True]
Out[] {{3,2,1,3,2},{3,2},{5,2,2},{6,1,1,2},{6,1,2,2},{6}}
I could do it step by step. But, since I do not know in advance the
number of occurrences, I would have to change the formulas every time
the input changes.
Thanks for your help,
Julio
Prev by Date:
**Re: Substitution!!!**
Next by Date:
**RE: ToExpression**
Previous by thread:
**RE: solving for variables in terms of other variables**
Next by thread:
**Re: Mathematica function writing for data analysis at Gould Academy [Correction]**
| |