## which sample points are correct and how to general...

P1 := x^2+y^2-4:
P2 := y^2-2*x+2:

Original question is find CAD of (some y)[P1 <0 and P2 <0]

how to use maple 12 and maple 2015 to find Q1,Q2,Q3 which are projection of P1 and P2

my book show sample points are [-4,-1-sqrt(7),-3,-2,0,1,3/2,-1+sqrt(7),9/5,2,3]
but FindSamples result is not the same with my book, is it my book wrong or FindSamples function wrong?
I find result of my script is the same as book's quantifier position at 7,8,9 though sample points has little different

how to generalize my following script to multiple variables x, y, z, and more ?

and

I compare with maple 2015 result are different from my book solution, is maple 2015 more advanced version CAD?

with(ListTools):

P1 := x^2+y^2-4:
P2 := y^2-2*x+2:

Q1 := x^2 + 2*x - 6;
Q2 := x^2 - 4;
Q3 := x - 1;

sourcesamples := sort(evalf([solve(Q1), solve(Q2), solve(Q3)]),`<`);

FindSamples:=proc(sourcesamples)
local N, P;
N:=nops(sourcesamples);
P:=proc(a,b)
local a1, b1, m1, n, m;
if a=b then error "Should be a<>b" fi;
a1,b1:=op(convert(sort([a,b],(x,y)->evalf(x)<evalf(y)),rational));
count := 0:
for n from 1 do
m1:=a1*n;
m:=`if`(type(m1,integer),m1+1,ceil(m1));
count := count + 1:
if is(m/n>a1) and is(m/n<b1) then return m/n fi;
od;
print("count=",count);
end proc:
[ceil(sourcesamples[1])-1, seq(op([sourcesamples[i],P(sourcesamples[i],sourcesamples[i+1])]), i=1..N-1),sourcesamples[N],floor(sourcesamples[N])+1];
end proc:

RemoveComplex := proc(yy)
local result, k:
result := []:
for k in yy do
if Im(k) = 0 then
result := [op(result), k]:
end if:
od:
if result = [] then
result := []:
end if:
return result:
end proc:

Joinsolution := proc(param1, param2group)
local result, k:
result := []:
for k in param2group do
result := [op(result), [param1, k]]:
od:
return result:
end proc:

#print(mm):
if MakeUnique(RemoveComplex([solve(subs(x=mm, P1)), solve(subs(x=mm, P2))])) = [] then
else
end if:
od:

if subs(x=mm[1],subs(y=mm[2], P1)) < 0 and subs(x=mm[1],subs(y=mm[2], P2)) < 0 then
end if:
od:

Compare with

with(RegularChains):
with(ChainTools):
with(MatrixTools):
with(ConstructibleSetTools):
with(ParametricSystemTools):
with(SemiAlgebraicSetTools):
with(FastArithmeticTools):
R := PolynomialRing([x,y]):
sys := [x^2+y^2-4,y^2-2*x+2]:
N := []:
P := []:
H := [x]:
dec := RealTriangularize(sys,N,P,H,R):
proj := Projection(sys, N, P, H, 1, R);
Display(dec, R);

P := SamplePoints(sys, R);
Display(P, R);

## is there easy way to simulate lines rotation?...

is there easy way to simulate lines rotation like robotic arm following point P moving by adjusting angle q1 and q2?

i feel point two lines and simulate static two lines in animate is also not easy.

with(plots):
with(geometry):
#Joint at (5,5)
#length a  2, y=7, x, solve(subs(y=7,2^2 = (y-5)^2+(x-5)^2), x)[1];
#length b 2, y=1, x, solve(subs(y=4,2^2 = (y-5)^2+(x-5)^2), x)[1];
point(A, 5, 5), point(B, solve(subs(y=7,2^2 = (y-5)^2+(x-5)^2), x)[1], 7):
point(C, 5, 5), point(D, solve(subs(y=4,2^2 = (y-5)^2+(x-5)^2), x)[1], 4):
line(L1, [A, B]);
line(L2, [C, D]);
_EnvHorizontalName := x;
_EnvVerticalName := y;
Equation(L1);
Equation(L2);
solve(Equation(L1), y);
solve(Equation(L2), y);
plot([solve(Equation(L1), y),solve(Equation(L2), y)], x = 1 .. 2);
animate(plot, [Equation(L1),Equation(L2), x = 0 .. 2], A = -3 .. 3);

Angle Reference from below

angle of L2 , q1a

angle of L1,  q2a

p1 := vector([a*cos(q1), a*sin(q1)]);
P := evalm(p1 + b*vector([cos(q1+q2), sin(q1+q2)]));
Pe := map(expand, P);
A := {cos(q1) = c1, sin(q1) =s1, cos(q2)=c2, sin(q2)=s2};
P := subs(A, op(Pe));
F1 := [x - P[1], y - P[2], s1^2+c1^2-1, s2^2+c2^2-1 ];
F2 := subs({a=1, b=1}, F1);
with(Groebner):
g1 := Basis(F2, plex(c2, s2, c1, s1, y, x));
g1 := [-4*x^2+x^4+2*x^2*y^2+y^4-4*y*x^2*s1-4*y^3*s1+4*s1^2*x^2+4*s1^2*y^2, 2*y*s1+2*x*c1-x^2-y^2, 4*x-x^3-y^2*x+2*y*x*s1-2*y^2*c1-4*s1^2*x+4*y*s1*c1, s1^2+c1^2-1, x*s1-y*c1+s2, -y^2+2-x^2+2*c2];
map(indets, g1);

g2 := Basis(F2, plex(c2, s2, c1, s1));

assume point x = 1, y = 0.5
g2spec := subs({x=1, y=1/2}, [g2[1],g2[3]]);
S1 := [solve(g2spec[1])];
q1a := evalf(arcsin(S1[1]));
q1b := evalf(arcsin(S1[2]));

S2 := [solve(subs(s1=S1[1], g2spec[2])), solve(subs(s1=S1[2], g2spec[2])) ];
q2a := evalf(arcsin(S2[1]));
q2b := evalf(arcsin(S2[2]));

q2a := subs({a=2,b=2}, q2a);
if q2a < 0 then
q2a_pi := evalf(eval(-q2a-Pi));
else
q2a_pi := evalf(eval(Pi-q2a));
end if:
q2a_pi;

q2b := subs({a=2,b=2}, q2b);
if q2b < 0 then
q2b_pi := evalf(eval(-q2b-Pi));
else
q2b_pi := evalf(eval(Pi-q2b));
end if:
q2b_pi;

## how to generate this sequence?...

I follow below question to generate binary sequence
but number of sequence is 6 not 5, why 011001 is wrong?

number of sequence should be catalan number.

how to generate this kind of sequence correctly?

For ecah positive integer n, how many 2n-digit binary sequence
b1,b2,b2n with n "0" and n "1" are there such that
for each i=1,2,...2n, the number of "0" is larger than or equal
to the number of "1" in the subsequence b1,b2,...bi?

with(combinat):
with(ListTools):
with(SumTools):
source := permute(Flatten([seq([0,0,0,1,1,1], k=1..1)]), 6);
aavxa := []:
for z in source do
if Summation(z[k], k = 1 .. nops(z)) = 3 then
if z[nops(z)] = 1 and z[1] = 0 then
if Reverse(z) in aavxa then
else
aavxa := [op(aavxa), z];
end if:
end if:
end if:
od:
nops(aavxa);
aavxa;

## How to dsolve when highest derivative at denominat...

y(t)/diff(y(t),t)

how to dsolve when highest derivative at denominator?

## How to assign value to a variable which had conver...

For a from 1 to 2 do

convert(cat("k",a),symbol) := a;

od;

Error : can not do assignment

how to do ?

## How to make eigenvectors result the same every tim...

Eigenvector result is changing every time it run.

How to make eigenvectors result the same every time it run?

## How to export a decimal number with order magnitud...

1.1 * 10^2

but export text become two lines

2

1.1 *   10

pretty printing = 3

but still two lines

how to export in one line such as 10^2 ?

## How to get rules after doing clustering?...

If A then B After clustering B , how to find a set of A in machine learning topic and fuzzy topic？

## How to choose which line and which color Plot on t...

Du plot two lines but overlapped

how to set color of each line and choose each line plot on top of layer to confirm overlapped?

## polynomial zeros...

I have the polynomial :P=X⁴+X³+aX²+√2X+b

Determine a and b so that (1 + i) is zero of P; then calculate all the zeros of P

## how to do reversible hash on 2d array ?...

i would like to to test and do hash on a 2d array and then predict this hash and then reverse back to another hash which can convert back to 2d array , how to do?

## sign expression...

i want to know the sign of all the coefficient of CharacteristicPolynomial of such matrix, can anyone help me to do this ?

calcul_determinant.mw

## Is there lifting function for a algebra use?...

Is there lifting function for polynomials or algebra use?

expect input a list univariate polynomial , then output a list of polynomials of two variables.

it should be the reverse operation of projection.

Which library has this function in maple 12 or maple 2015?

## how to generalize this inserting values method int...

sourcesamples := [evalf(-1-sqrt(7)), -2, 1, evalf(-1 + sqrt(7)), 2];
templatesamples := [A, evalf(-1-sqrt(7)), A, -2, A, 1, A, evalf(-1 + sqrt(7)), A, 2, A];
samples := [-4, evalf(-1-sqrt(7)), -3, -2, 0, 1, evalf(3/2), evalf(-1 + sqrt(7)), evalf(9/5), 2, 3]

want to insert value alternatively according to the template and neighbor values

Some inserted values come from

floor(evalf(-1-sqrt(7)))
ceil(evalf(-1-sqrt(7)))

(round(evalf(-1+sqrt(7)),0) + 1)/2;
(2 + 1)/2
=evalf(3/2)

(round(evalf(-1+sqrt(7)),1) + 2)/2;
(1.6 + 2)/2
=evalf(9/5);

how to generalize this method into general case function instead of manual inesrt?