Thomas Dean

100 Reputation

7 Badges

14 years, 253 days

MaplePrimes Activity


These are questions asked by Thomas Dean

intersection in the geometry package does not seem to recognize assume.

restart: with(geometry):

assume(p[1]<>0, p[2]<>0, p[3]<>0);
assume(q[1]<>0, q[2]<>0, q[3]<>0);
point(T,[p[1],q[1]]);
point(U,[p[2],q[2]]);
point(V,[p[3],q[3]]);
point(Op,[0,0]);

line(OT,[Op,T]);
line(OU,[Op,U]);
line(OV,[Op,V]);

point(B,2*q[2],solve(subs(x=2*q[2],Equation(OU)),y));
coordinates(B);
IsOnLine(B,OU);

PerpendicularLine(AD,B,OT);
ArePerpendicular(AD,OT);
sol:=solve({Equation(AD),Equation(OT)},{x,y});
eval(x,sol);
point(A,eval(x,sol),eval(y,sol));  ## the intersection exists
intersection(xA,AD,OT); ## fails
about(p[1]),about(q[1]);

I have several plots generated with geometry objects:

plt1 := draw(...); plt2 := draw(...)

I want to display all them with a reasonable window.  I have been looping and and using a rather dumb proc to find the window size. I use the view=[...] option with the values calculated to set the plot view.

I wanted to post the proc, but, really messed that up!  I will try the proc later.

 

Some of the plots I am working with have views like

> for itm in [relBrgLinePlot,relTgtPositPlot,relTgtLinePlot] do
    op(-1,itm);
end do;
                     VIEW(0. .. 95., -61.58179461 .. 16.)
                 VIEW(5.48225506 .. 95., -61.58179461 .. 16.)
                 VIEW(5.48225506 .. 95., -61.58179461 .. 16.)

> for itm in [geoSensPositPlot,geoSensLinePlot,\
            geoBrgLinePlot,geoTgtPositPlot,geoTgtLinePLot] do
    op(-1,itm);
end do;
                  VIEW(0. .. 35.35331852, 0. .. 87.13244438)
                  VIEW(0. .. 35.35331852, 0. .. 87.13244438)
                     VIEW(0. .. 95., 0. .. 87.13244438)
                 VIEW(40.83557358 .. 95., 16. .. 25.55064977)
                 VIEW(40.83557358 .. 95., 16. .. 25.55064977)

Is there an easier way to do this?

Linux.  I want to put grid lines on an x11 device.

The x11 device is better for plotting because if the window is resized, the plot resizes with it.

restart;
plotsetup(x11);plot(sin(x),x=-1..1,gridlines = true); ## no gridlines

restart;
plotsetup(maplet);
plot(sin(x),x=-1..1,gridlines = true); ## have gridlines

Any way to get gridlines on x11 device?

Tom Dean

The first example is very slow compared to the second.  The difference is in the definition of f().

restart;
y := int(1/(-0.4016e-1*m^(2/3)-0.211e-3*m^(5/3)), m);
f:= unapply(abs(y), m):
n := 500: ## sample size
M := <seq(2*idx/n,idx=1..n)>; ## m
Y := f~(M)+~Statistics:-Sample(Normal(0,3), n)^+; ## signal + noise

restart;
y := int(1/(-0.4016e-1*m^(2/3)-0.211e-3*m^(5/3)), m);
f:= (x) -> abs(subs(m=x,y));
n := 500: ## sample size
M := <seq(2*idx/n,idx=1..n)>; ## m
Y := f~(M)+~Statistics:-Sample(Normal(0,3), n)^+; ## signal + noise


With a somewhat complicated equation for a line, draw fails.

with(geometry):

point(P1,[47+(38+22/60)/60, -(122+(43+4/60)/60)]);
point(P2,coordinates(P1) +~ [cos(30*Pi/180),sin(30*Pi/180)]);
line(L1,[P1,P2]);
Equation(L1);
draw(L1); ## no line

point(P1,[0,0]);
point(P2,[7,9]);
line(L1,[P1,P2]);
draw(L1);  ## works

Tom Dean

1 2 3 4 5 6 Page 4 of 6