Thomas Dean

337 Reputation

10 Badges

21 years, 99 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

First 11 12 13 14 15 Page 13 of 15