acer

26362 Reputation

29 Badges

16 years, 319 days

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

If you upload and attach here your corrupted worksheet then we could try and repair it. You can use the green up-arrow in the Mapleprimes editor for that.

It doesn't help to duplicate your message in several other old Question threads.

@Rouben Rostamian  Alternatively,

f := u -> int(cos(1+arctan(u,r)), r=1..2, numeric) - u^2:

fsolve(f, 0..1);

       0.4910845909

fsolve('f'(u), u=0..1);

       0.4910845909

This can be managed by avoiding evaluation of a symbolic function call such as f(u), thus f treated like a black box.

I haven't investigated yet as to the precise nature of the difficulty.

@MANUTTM I find it difficult to tell exactly what you mean, in this new and related query.

Are you trying to say that you want to compute the globally best D as a function of inputs g and Sr? If so, then is y also an input of that, or is the optimization allowed to vary y over its stated range?

Also, did you see the result of simplification of the Hessian Matrix in my revision of your worksheet above? Do you know how that impacts on your convexity query?

I have deleted three duplicate postings of this. Please stop submitting duplicates of it.

Also, if you have followup details on this query then please add them here, instead of spawning a separate Question thread.

The data of this Question has been changed, so I've deleted my Answer and my followup alternative since they pertained to that particular form of data.

The original Question referrred to only the following data:

and asked about how to produce an image like this:

@Carl Love You example works in Maple 2022.1, but not in all older versions. Below I mention some edits that allow it to work more as intended in older versions (that supported Typesetting).

That text denoting the color, eg. green in your code, should be within escaped string-quotes, ie, \"green\" .

The hex variants should be prefixed by #, rather than x. (In Maple 2022.1 there must be some preceding character(s), and it needn't specifically be x or #)

Also, use in some plotting situations, that name constructed by nprintf should be terminated by the semicolon character.

Maple 2022.1 respects the leading/trailing blanks, but it's trickier in some older versions. This is one reason I preferred (here) the Typesetting exports rather than the MathML style name-markup. However the OP has not yet told us precisely how he intends on using these colored things, nor his Maple version, and so I cannot know which is best here.

@Ronan If you are using 2D Input mode then the anonymous procedure can be delimited by brackets.

Eg, you can paste in this:

   (add@map)((proc(E) ``(lcoeff(E))*normal(E/lcoeff(E)); end proc)@add, [Q(expand(pn))])

That "end" goes with the "proc".

I have deleted a duplicate of this topic.

Put your followup queries and details on this here, not in separate Question threads.

@mehdibgh Yes, fsolve is having problems finding/accepting the multivariate roots if the ranges's boundary is very close.

restart

EQ := Matrix(4, 1, {(1, 1) = 32.1640740637930*Tau[1]-0.172224519601111e-4*Tau[2]-0.270626540730518e-3*Tau[3]+0.1570620334e-9*P[1]+0.3715450960e-14*sin(t), (2, 1) = -0.172224519601111e-4*Tau[1]+32.1667045885952*Tau[2]+0.587369829416537e-4*Tau[3]-0.1589565489e-8*P[1]+0.1004220091e-12*sin(t), (3, 1) = -0.270626540730518e-3*Tau[1]+0.587369829416537e-4*Tau[2]+32.1816411689934*Tau[3]-0.7419658527e-8*P[1]+0.5201228088e-12*sin(t), (4, 1) = 0.1570620334e-9*Tau[1]-0.1589565489e-8*Tau[2]-0.7419658527e-8*Tau[3]+601.876235436204*P[1]})

V := Matrix(1, 4, {(1, 1) = Tau[1], (1, 2) = Tau[2], (1, 3) = Tau[3], (1, 4) = P[1]})

q := 0

X := Matrix(4, 1, {(1, 1) = -0.1156532164e-15*sin(t), (2, 1) = -0.3121894613e-14*sin(t), (3, 1) = -0.1616209235e-13*sin(t), (4, 1) = -0.2074537757e-24*sin(t)})

t := 0.5617399480550e-5

fsolve({seq(EQ[r, 1], r = 1 .. 4)}, {seq(V[1, r] = (1+0.1e-8)*X[r, 1] .. q, r = 1 .. 4)})

{P[1] = -0.1165350731e-29, Tau[1] = -0.6496703177e-21, Tau[2] = -0.1753692918e-19, Tau[3] = -0.9078892919e-19}

``

Download SoalNewton2_ac.mw

You haven't stated why an optimization approach is not acceptable.

@dharr For some reason I had convinced myself that the solution of the linear problem lay outside the OP's provided ranges -- hence my least-squares approach. I might not have looked properly at the range end-points X that the OP provided.

@gravatarq I deleted a duplicate posting of this.

@mehdibgh Your description is that of an inverted range, since with your t value as 1 the values in X will be negative and you have the lower range value q as 0.

Also, you have the same kind of indexing mistake with X, which you have as a 4x1 Matrix, and not a Vector.

You could try the ranges as,

     { seq(V[1, r] = X[r, 1] .. q, r = 1 .. 4) }

but you might not find a solution.

[edit] Perhaps you might actually be satisfied with a solution to an optimization problem of minimizing some related objective (eg. least-squares). Here I raise the working precision to try and get a more accurate result:

restart

EQ := Matrix(4, 1, {(1, 1) = 32.1640740637930*Tau[1]-0.172224519601111e-4*Tau[2]-0.270626540730518e-3*Tau[3]+0.1570620334e-9*P[1]+0.3715450960e-14*sin(t), (2, 1) = -0.172224519601111e-4*Tau[1]+32.1667045885952*Tau[2]+0.587369829416537e-4*Tau[3]-0.1589565489e-8*P[1]+0.1004220091e-12*sin(t), (3, 1) = -0.270626540730518e-3*Tau[1]+0.587369829416537e-4*Tau[2]+32.1816411689934*Tau[3]-0.7419658527e-8*P[1]+0.5201228088e-12*sin(t), (4, 1) = 0.1570620334e-9*Tau[1]-0.1589565489e-8*Tau[2]-0.7419658527e-8*Tau[3]+601.876235436204*P[1]})

V := Matrix(1, 4, {(1, 1) = Tau[1], (1, 2) = Tau[2], (1, 3) = Tau[3], (1, 4) = P[1]})

q := 0

X := Matrix(4, 1, {(1, 1) = -0.1156532164e-15*sin(t), (2, 1) = -0.3121894613e-14*sin(t), (3, 1) = -0.1616209235e-13*sin(t), (4, 1) = -0.2074537757e-24*sin(t)})

t := 1

Digits := 60; Sol := Optimization:-Minimize(add(EQ[r, 1]^2, r = 1 .. 4), seq(V[1, r] = X[r, 1] .. q, r = 1 .. 4))

[0.23051887707880648450227137668244873934400e-43, [P[1] = -0.174566332911092633926811253720853832324936144346344610109133e-24, Tau[1] = -0.973188258955118595763778228079271664727641452276400379153389e-16, Tau[2] = -0.262698373446757694397996566086762382450096865275922610909883e-14, Tau[3] = -0.135999317663106703497601318807782949900124793323219378929709e-13]]

Sol[2]

[P[1] = -0.174566332911092633926811253720853832324936144346344610109133e-24, Tau[1] = -0.973188258955118595763778228079271664727641452276400379153389e-16, Tau[2] = -0.262698373446757694397996566086762382450096865275922610909883e-14, Tau[3] = -0.135999317663106703497601318807782949900124793323219378929709e-13]

evalf[5](evalf[60](eval(add(EQ[r, 1]^2, r = 1 .. 4), Sol[2])))

0.23052e-43

NULL

Download SoalNewton_acc.mw

@fkohlhepp I have deleted a duplicate of this Question thread.

If you have any additional details or related followup queries then feel free to add them here. Please don't spawn a separate Question thread for this.

And here is an animation, based upon the OP's revised code...

I let it be animated w.r.t. the parameter t passed to CircleParm for point P1.

The procedure F produces each plotted frame.

(It could also be done with Explore, optionally with additional parameters passed for F's other arguments -- being the values passed to CircleParm for P2,P3,P4.)

restart;

with(plots): with(plottools):with(LinearAlgebra): unprotect(D);

_EnvHorizontalName := 'x':
_EnvVerticalName := 'y':

Vdot := proc (U, V)local i: add(U[i]*V[i], i = 1 .. 2) end proc:
dist := proc (M, N) sqrt(Vdot(expand(M-N), expand(M-N))) end proc:
MinDistPoint := proc (A::[algebraic, algebraic], B::[algebraic, algebraic], P::[algebraic, algebraic])
local D, R, V;
description "Point on line AB at minimum distance from P";
D := `<,>`(A-B); R := `<,>`(`<|>`(0, -1), `<|>`(1, 0));
V := `<,>`(`<,>`(P) . D, -R . `<,>`(A) . `<,>`(B)); `~`[`/`]([V . D, R . V . D], ` $`, D . D)
end proc:

EqBIS := proc(P, U, V) local a, eq1, M1, t, PU, PV, bissec1; a := (P - U)/LinearAlgebra:-Norm(P - U, 2) + (P - V)/LinearAlgebra:-Norm(P - V, 2); M1 := P + a*t; eq1 := op(eliminate({x = M1[1], y = M1[2]}, t)); return op(eq1[2]); end proc:

Cen := proc(M, N, R) local eq1, eq2, sol; eq1 := EqBIS(M, N, R) = 0; eq2 := EqBIS(N, M, R) = 0; sol := simplify(solve({eq1, eq2}, {x, y})); return [subs(sol, x), subs(sol, y)]; end proc:

CircleParm := t -> [(-t^2 + 1)/(t^2 + 1), 2*t/(t^2 + 1)]:

 

F := proc(parm1,parm2,parm3,parm4)
local P1,P2,P3,P4,r1,r2,r3,r4,p1,p2,p3,p4,Cir1,Cir2,Cir3,Cir4,
      H,C4,C1,C2,C3,J,K,Pts,Ii,Poly,SegP1P4,SegP2P3,quadri,rect,tex;
try
P1 := Vector(CircleParm(parm1)):
P2 := Vector(CircleParm(parm2)):
P3 := Vector(CircleParm(parm3)):
P4 := Vector(CircleParm(parm4)):
p1 := convert(P1, list);
p2 := convert(P2, list);
p3 := convert(P3, list);
p4 := convert(P4, list);
C4 := Vector(Cen(P1, P2, P3)):H := convert(C4, list):
C1 := Vector(Cen(P4, P2, P3));
J := convert(C1, list);
C2 := Vector(Cen(P4, P1, P3));
Ii := convert(C2, list);
C3 := Vector(Cen(P4, P2, P1));
K := convert(C3, list);
Pts := [P1, P2, P3, P4, C1, C2, C3, C4]:
r4 := dist(MinDistPoint(p1, p2, H), H);
r2 := dist(MinDistPoint(p1, p4, Ii), Ii);
r1 := dist(MinDistPoint(p2, p3, J), J);
r3 := dist(MinDistPoint(p2, p1, K), K);
Cir1 := circle(Ii, r2, color = black);
Cir2 := circle(K, r3, color = black);
Cir3 := circle(J, r1, color = black);
Cir4 := circle(H, r4, color = black);
Poly := polygonplot([p1, p2, p4, p3, p1], color = blue, transparency = 0.9);
SegP1P4 := plot([p1, p4], color = black);
SegP2P3 := plot([p2, p3], color = black);
quadri := plot([p1, p2, p4, p3, p1], color = black);
rect := polygonplot([H, Ii, J, K, H], color = red, transparency = 0.7);
tex := textplot([[p1[], "P1"], [p2[], "P2"], [p3[], "P3"], [p4[], "P4"], [H[], "H"], [Ii[], "I"], [J[], "J"], [K[], "K"]], align = ["above", "right"]);
display(Poly, tex, quadri, rect, SegP1P4, SegP2P3, Cir1, Cir2, Cir3, Cir4, implicitplot([x^2 + y^2 - 1], x = -2 .. 2, y = -4 .. 2, colour = [blue], scaling = constrained), pointplot(Pts, symbolsize = 16), axes = none);
catch:
  NULL;
end try;
end proc:

animate(F,[param1,5,-1/10,-19/2], param1=1/10..1);

Download jamet_anim1.mw

The OP wrote, in a followup comment, "how to draw all the lines P1P2,P2P3,P3P4, etc,  and the incirles of centers C1, C2.."

The OP's earlier code did not define C2, however, so I have made a guess as to that (and to the incircles).

restart;
with(LinearAlgebra):
with(plots):
with(plottools,line):
with(plottools,circle):

EqBIS := proc(P, U, V) local a, eq1, M1, t, PU, PV, bissec1; a := (P - U)/LinearAlgebra:-Norm(P - U, 2) + (P - V)/LinearAlgebra:-Norm(P - V, 2); M1 := P + a*t; eq1 := op(eliminate({x = M1[1], y = M1[2]}, t)); return op(eq1[2]); end proc:

A := <4, 8>;
B := <4, 2>;
C := <1, 4>;
EqBIS(A, B, C);

A := Vector(2, {(1) = 4, (2) = 8})

B := Vector(2, {(1) = 4, (2) = 2})

C := Vector(2, {(1) = 1, (2) = 4})

-5*y-20+15*x

Cen := proc(M, N, R) local eq1, eq2, sol; eq1 := EqBIS(M, N, R) = 0; eq2 := EqBIS(N, M, R) = 0; sol := simplify(solve({eq1, eq2}, {x, y})); return [subs(sol, x), subs(sol, y)]; end proc:
Cen(A,B,C):

CircleParm := t -> [(-t^2 + 1)/(t^2 + 1), 2*t/(t^2 + 1)];

proc (t) options operator, arrow; [(-t^2+1)/(t^2+1), 2*t/(t^2+1)] end proc

P1 := (CircleParm(1/4));

P2 := (CircleParm(5));
P3 := (CircleParm(-1/10));
P4 := (CircleParm(-3/2));

[15/17, 8/17]

[-12/13, 5/13]

[99/101, -20/101]

[-5/13, -12/13]

C1 := Cen(<P1>, <P2>, <P3>);

[(1/44642)*(1066*17^(1/2)-255*26^(1/2))*101^(1/2)-(1/442)*26^(1/2)*17^(1/2), (1/44642)*(156*17^(1/2)-833*26^(1/2))*101^(1/2)+(21/442)*26^(1/2)*17^(1/2)]

C2 := Cen(<P4>, <P2>, <P3>);

[(1/2626)*(15*2^(1/2)+34)*1313^(1/2)-(17/26)*2^(1/2), (1/2626)*(49*2^(1/2)-64)*1313^(1/2)-(7/26)*2^(1/2)]

Pts := [P1, P2, P3, P4, C1, C2];

[[15/17, 8/17], [-12/13, 5/13], [99/101, -20/101], [-5/13, -12/13], [(1/44642)*(1066*17^(1/2)-255*26^(1/2))*101^(1/2)-(1/442)*26^(1/2)*17^(1/2), (1/44642)*(156*17^(1/2)-833*26^(1/2))*101^(1/2)+(21/442)*26^(1/2)*17^(1/2)], [(1/2626)*(15*2^(1/2)+34)*1313^(1/2)-(17/26)*2^(1/2), (1/2626)*(49*2^(1/2)-64)*1313^(1/2)-(7/26)*2^(1/2)]]

rr := proc(p1,p2,p3) local dd,d12,d23,d31;
        dd := (a,b)->sqrt((b[2]-a[2])^2+(b[1]-a[1])^2);
        (d12,d23,d31) := dd(p1,p2),dd(p2,p3),dd(p3,p1);
        (s->sqrt((s-d12)*(s-d23)*(s-d31)/s))((d12+d23+d31)/2);
      end proc:

display(implicitplot([x^2 + y^2 - 1], x = -2 .. 2, y = -4 .. 2, colour = [blue], scaling = constrained), pointplot(Pts, symbolsize = 16),
        line(P1,P2),line(P2,P3),line(P3,P1),circle(C1,rr(P1,P2,P3)),
        line(P4,P2),line(P2,P3),line(P3,P4),circle(C2,rr(P4,P2,P3)));

Download jamet_ac2.mw

1 2 3 4 5 6 7 Last Page 1 of 489