Question: Why is selection by index not working inside ExpressionTools:-Compare

Can someone explain why the element selection inside Compare works differently for the second argument?

ode := diff(diff(y(x), x), x)+sin(y(x)) = 0; IC := y(infinity) = Pi; sol := [dsolve([ode, IC])]

diff(diff(y(x), x), x)+sin(y(x)) = 0

 

y(infinity) = Pi

 

[y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi)+_a+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)]

(1)

dsolve([ode, y(x__IC) = y__IC])

y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)

(2)

ExpressionTools:-Compare(sol[1], [y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)][1])

"([[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^Pi1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+_a+`c__2`))) ⅆ_a+x+`c__2`)],[[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`),y(x)=RootOf((∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf((∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`)][1]]])"

(3)

whattype(y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))

exprseq

(4)

ExpressionTools:-Compare(sol[1], (y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))[1])

"([[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^Pi1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+_a+`c__2`))) ⅆ_a+x+`c__2`)],[(y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`),y(x)=RootOf((∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf((∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`))[1]]])"

(5)

NULL

(y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))[1]; ExpressionTools:-Compare(sol[1], %)

y(x) = RootOf(-(Int(1/sqrt(2*cos(_a)+RootOf(-(Int(1/sqrt(2*cos(_a)+_Z), _a = 0 .. y__IC))+x__IC+c__2)), _a = 0 .. _Z))+x+c__2)

(6)

NULL

 

 

 

 

Download Compare_and_indexing_output.mw

 

 

Please Wait...