Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I am trying to see if I can get speed up by using dsolve inside thread.

I made very simple example of global list of two differential equations to start with.

Next, created two threads where each picks one ode from the global list to process. So they should in theory run in parallel. The list of ode's is a global list in the worksheet for now.

But I keep getting error when calling dsolve 

               Error, (in dsolve) type `System` does not exist

I tried also passing the actual ode to the thread, still, same error.

Next, I did not pass anything, but called dsolve directly from inside thread proc on same ode. The ode is local variable inside the proc. I still get same error.

                        Does this mean dsolve is not supported by threads? 

But when I searched this subject, AI says it works in threads:

 

Everything works OK when I run dsolve in worksheet outside thread (i.e. normally).

I will show below worksheet showing these cases. I must not be doing something right. But what? Can one not pass data from global worksheet to the thread this way? Or does one needs to load something in each thread to make this work?

interface(version);

`Standard Worksheet Interface, Maple 2024.2, Windows 10, October 29 2024 Build ID 1872373`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1840 and is the same as the version installed in this computer, created 2024, December 2, 10:11 hours Pacific Time.`

libname;

"C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib", "C:\Program Files\Maple 2024\lib"

Example 1. Passing index of list to thread

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(i::posint)  
  :-dsolve(g_list[i]):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(i)), i=1..2) );

Error, (in dsolve) type `System` does not exist

Example 2. Passing actual ode itself to thread

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(ode::`=`)  
  :-dsolve(ode):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(g_list[i])), i=1..2) );

Error, (in dsolve) type `System` does not exist

 

Example 3. Normal processing. No threads

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(ode::`=`)  
  :-dsolve(ode):
end proc:

for item in g_list do
    work_func(item);
od:

#no error

 

Example 4. do not pass anything. Just call dsolve

 

restart;

work_func:=proc(i::posint)  
  local x,t;
  local ode:=sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0;
  :-dsolve(ode):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(i)), i=1..2) );

Error, (in dsolve) type `System` does not exist

 

 

 

Download error_dsolve_using_threads_dec_26_2024.mw

restart;

Here are the graphs of a parabola and a straight line:

plots:-display(
        plot(x^2, x=-1..1),
        plot((x+1)/2, x=-1..1),
color=["Red","Green"]);

 

Suppose I want to plot the part of the parabola that lies below

the straight line, and suppose, just to be nasty, I choose to do it

with implicitplot:

plots:-implicitplot(y=x^2, x=-1..1, y=0..(x+1)/2);

 

That is not a parabola at all.  [And where does the "ynew" label come from?]

 

This behavior was introduced in Maple 2022.

In Maple 2021 we get the expected result:

plots:-implicitplot(y=x^2, x=-1..1, y=0..(x+1)/2);


 

Download mw.mw

I cannot find any examples of how to raise the software memory limits to maximum with the mentioned  -T switch in the manual to avoid memory allocation error popup.

Neither are there any examples posted on the web.

It cannot be a hardware allocation error, as the system memory is large.

So how is the -T switch implimented

2024-12-20_Q_simplification_Question.mw
Solve the general cubic. Apply values and simplify. 

Could someone show how Maple simplifies to the value of X=3? I tried doing it manually and I could not figure it out. 

Also is there a Help assistant to see the setps?

restart

 

 

X^3+a*X=b

X^3+X*a = b

(1)

 

 

sol:=solve(X^3+a*X=b,[X])

[[X = (1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)-2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)], [X = -(1/12)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3))], [X = -(1/12)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3))]]

(2)

vals:=[a=6,b=45]

[a = 6, b = 45]

(3)

Nans:=(map(eval,sol,vals))

[[X = (1/6)*(4860+12*166617^(1/2))^(1/3)-12/(4860+12*166617^(1/2))^(1/3)], [X = -(1/12)*(4860+12*166617^(1/2))^(1/3)+6/(4860+12*166617^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/6)*(4860+12*166617^(1/2))^(1/3)+12/(4860+12*166617^(1/2))^(1/3))], [X = -(1/12)*(4860+12*166617^(1/2))^(1/3)+6/(4860+12*166617^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/6)*(4860+12*166617^(1/2))^(1/3)+12/(4860+12*166617^(1/2))^(1/3))]]

(4)

simplify(Nans)

[[X = 3], [X = (1/4)*(I*3^(1/2)*(180+44*17^(1/2))^(2/3)+(8*I)*3^(1/2)-(180+44*17^(1/2))^(2/3)+8)/(180+44*17^(1/2))^(1/3)], [X = -3/2-((1/2)*I)*51^(1/2)]]

(5)
 

 

Download 2024-12-20_Q_simplification_Question.mw

Hi

If possible, please help me write the steps to solve the following equation.

By setting the coefficients of the same power (Yi) on both sides of equation equal, we solution get

This is my first time working with plotting data from a matrix. However, with the help of a friends on MaplePrimes, I learned how to plot the data in both Maple and MATLAB. Despite this, I am having trouble with visualization. When I change the delta value, my function experiences vibrations or noise, which is clearly visible in the plot. But when I change delta, I encounter errors with my matrix data. How can I fix this problem? and there is any way for get better visualization by Explore ? also How show this vibration or noise in 2D?

restart;

randomize():

local gamma;

gamma

(1)

currentdir(kernelopts(':-homedir'))

NULL

T3 := (B[1]*(tanh(2*n^2*(delta^2-w)*k*t/((k*n-1)*(k*n+1))+x)-1))^(1/(2*n))*exp(I*(-k*x+w*t+delta*W(t)-delta^2*t))

(B[1]*(tanh(2*n^2*(delta^2-w)*k*t/((k*n-1)*(k*n+1))+x)-1))^((1/2)/n)*exp(I*(-k*x+w*t+delta*W(t)-delta^2*t))

(2)

NULL

params := {B[1]=1,n=2,delta=1,w=1,k=3 };

{delta = 1, k = 3, n = 2, w = 1, B[1] = 1}

(3)

NULL

insert numerical values

solnum :=subs(params, T3);

(tanh(x)-1)^(1/4)*exp(I*(-3*x+W(t)))

(4)

CodeGeneration['Matlab']('(tanh(x)-1)^(1/4)*exp(I*(-3*x+W(t)))')

Warning, the function names {W} are not recognized in the target language

 

cg = ((tanh(x) - 0.1e1) ^ (0.1e1 / 0.4e1)) * exp(i * (-0.3e1 * x + W(t)));

 

N := 100:

use Finance in:
  Wiener := WienerProcess():
  P := PathPlot(Wiener(t), t = 0..10, timesteps = N, replications = 1):
end use:

W__points := plottools:-getdata(P)[1, -1]:
t_grid := convert(W__points[..,1], list):
x_grid := [seq(-2..2, 4/N)]:

T, X := map(mul, [selectremove(has, [op(expand(solnum))], t)])[]:

ST := unapply(eval(T, W(t)=w), w)~(W__points[.., 2]):
SX := evalf(unapply(X, x)~(x_grid)):

STX := Matrix(N$2, (it, ix) -> ST[it]*SX[ix]);

_rtable[36893490640185799852]

(5)

opts := axis[1]=[tickmarks=[seq(k=nprintf("%1.1f", t_grid[k]), k=1..N, 40)]],
        axis[2]=[tickmarks=[seq(k=nprintf("%1.1f", x_grid[k]), k=1..N, 40)]],
        style=surface:

DocumentTools:-Tabulate(
  [
    plots:-matrixplot(Re~(STX), opts),
    plots:-matrixplot(Im~(STX), opts),
plots:-matrixplot(abs~(STX), opts)
  ]
  , width=60
)

"Tabulate"

(6)

MatlabFile := cat(currentdir(), "/ST2.txt"); ExportMatrix(MatlabFile, STX, target = MATLAB, format = rectangular, mode = ascii, format = entries)

421796

(7)

NULL

Download data-analysis.mw

is(abs(x)=max(x,-x)) assuming real;

#  FAIL

I wonder if this will work in newer versions of Maple?

Is it possible to configure newer maple versions to use a different file extension ?

I have a lot of  Maple 9 files  with .mw extension. I dont want them opened and saved by a later version as they are valuable and actually work better than later maple versions which throws unneccesary signum errors. The results are verified so the signum errors are bogus in the recent maple versions running the same file.

Particularly, can I configure e.g. Maple 2022 to save to a different file extension say .mww or similar rather than .mw so I can avoid destroying to original 9.5 files?

What systematic methods can be used to determine the optimal parameters in a long equation involving two independent variables, and how do techniques like separation of variables, balancing principles, or dimensional analysis aid in simplifying and solving such equations?

parameters_x_t.mw

Some of the calculations mentioned here can be done in alternative programming languages, such as Python, C, and so on. However, I would like to reproduce exactly these graphs using Maple (without the need for programming commands, such as "if", "while", among others).

In the work I am trying to reproduce, we have "The evaluation of the influence of the inclusion of the broadband behavior of grounding systems in EMT-type programs in the evaluation of transients resulting from direct lightning strikes on transmission lines. The behavior of the grounding frequency is determined using an accurate electromagnetic model and included in the EMTP/ATP by means of an equivalent circuit derived from the Vector Fitting technique. In addition, the impact of the frequency dependence of soil parameters on the lightning performance of transmission lines is addressed." This may seem somewhat disconnected from reality for many, since it is a problem involving electrical engineering optimization.

Could someone help me reproduce these calculations? I have made little significant progress.

If you want to access the reference accounts, I'll send you the PDF

schroeder2017 [link to copyrighted material replaced by moderator]

Hi,
How can I simplify this relation(See uploaded .mw file)?
For example, the second term is simplified as: 

deltae*(1-phi0/(kappa-3/2))^(-kappa+1/2)+(1/2)*deltab*(1-sqrt(2)*sqrt(1/(m*ub^2))*sqrt(-phi0));

di1.mw

Where can I found details about Statistics:-Sample(..., method=envelope).

It would be nice to have a link to a description of the envelope method Sample uses.
For instance does it share some features of the Cuba library for numeric integration? Does it use the same envelope method evalf/Int(..., method=_CubaSuave)) uses?

Thanks in advance.

I'm trying to transform a partial differential equation (PDE) into an ordinary differential equation (ODE) as demonstrated in the paper. However, I find some steps confusing and difficult to follow. The process often feels chaotic, and managing the complexity of the equations is overwhelming. Could you suggest an effective and systematic method to handle such transformations more easily?

restart

with(PDEtools)

with(LinearAlgebra)

NULL

with(SolveTools)

undeclare(prime)

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(1)

declare(Omega(x, t)); declare(U(xi))

Omega(x, t)*`will now be displayed as`*Omega

 

U(xi)*`will now be displayed as`*U

(2)

tr := {t = tau, x = tau*c[0]+xi, Omega(x, t) = U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))}

{t = tau, x = tau*c[0]+xi, Omega(x, t) = U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))}

(3)

P1 := diff(Omega(x, t)^m, t)

Omega(x, t)^m*m*(diff(Omega(x, t), t))/Omega(x, t)

(4)

L1 := PDEtools:-dchange(tr, P1, [xi, tau, U])

(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*(-((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))*c[0]+I*U(xi)*(-k*c[0]+w+delta*(diff(W(tau), tau))-delta^2)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))/(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))

(5)
 

pde1 := I*(diff(Omega(x, t)^m, t))+alpha*(diff(Omega(x, t)^m, `$`(x, 2)))+I*beta*(diff(abs(Omega(x, t))^(2*n)*Omega(x, t)^m, x))+m*sigma*Omega(x, t)^m*(diff(W(t), t)) = I*gamma*abs(Omega(x, t))^(2*n)*(diff(Omega(x, t)^m, x))+delta*abs(Omega(x, t))^(4*n)*Omega(x, t)^m

I*Omega(x, t)^m*m*(diff(Omega(x, t), t))/Omega(x, t)+alpha*(Omega(x, t)^m*m^2*(diff(Omega(x, t), x))^2/Omega(x, t)^2+Omega(x, t)^m*m*(diff(diff(Omega(x, t), x), x))/Omega(x, t)-Omega(x, t)^m*m*(diff(Omega(x, t), x))^2/Omega(x, t)^2)+I*beta*(2*abs(Omega(x, t))^(2*n)*n*(diff(Omega(x, t), x))*abs(1, Omega(x, t))*Omega(x, t)^m/abs(Omega(x, t))+abs(Omega(x, t))^(2*n)*Omega(x, t)^m*m*(diff(Omega(x, t), x))/Omega(x, t))+m*sigma*Omega(x, t)^m*(diff(W(t), t)) = I*gamma*abs(Omega(x, t))^(2*n)*Omega(x, t)^m*m*(diff(Omega(x, t), x))/Omega(x, t)+delta*abs(Omega(x, t))^(4*n)*Omega(x, t)^m

(6)

NULL

L1 := PDEtools:-dchange(tr, pde1, [xi, tau, U])

I*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*(-((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))*c[0]+I*U(xi)*(-k*c[0]+w+delta*(diff(W(tau), tau))-delta^2)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))/(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))+alpha*((U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m^2*((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^2/(U(xi)^2*(exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^2)+(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*((diff(diff(U(xi), xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-(2*I)*(diff(U(xi), xi))*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-U(xi)*k^2*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))/(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))-(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^2/(U(xi)^2*(exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^2))+I*beta*(2*(abs(U(xi))*exp(-Im(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^(2*n)*n*((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))*abs(1, U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m/(abs(U(xi))*exp(-Im(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))+(abs(U(xi))*exp(-Im(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^(2*n)*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))/(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))))+m*sigma*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*(diff(W(tau), tau)) = I*gamma*(abs(U(xi))*exp(-Im(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^(2*n)*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m*m*((diff(U(xi), xi))*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau))-I*U(xi)*k*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))/(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))+delta*(abs(U(xi))*exp(-Im(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^(4*n)*(U(xi)*exp(I*(-k*(tau*c[0]+xi)+w*tau+delta*W(tau)-delta^2*tau)))^m

(7)

``

``

(8)

Download transform-pde-to-ode-hard_example.mw

Hello sir, how are you?
Sorry to bother you, I needed your help. I have the script from your textbook "3D Graph Equation of Motorcycle run on Maple Software". It's not working. I'd appreciate it if you could take a look.

with(plots);
implicitplot3d(((49.80*x + 19.44*y + 133.2300 - 19.08*sqrt(x^2 + 8.30*x + 19.8469 + y^2 + 3.24*y) - 66.6150*abs(-3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42) + 0.5625*abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2) = ((((((((((((2 + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(y^2 + 3.24)) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 3.24) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(y^2 - 3.18)) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 8.30) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 3.24)) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(y^2 + 3.24) + 0.42*abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2) and ((((((((((((2 + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(y^2 + 3.24)) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 3.24) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(y^2 - 3.18)) + abs(3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2))) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(x^2 + 8.30) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42) + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 8.30) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y - 2)*(x^2 + 3.24)) - 3.9*sqrt((x - 1.7)^2 + (y - 1.35)^2)) + 0.42 + abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2)*(y^2 + 3.24) + 0.42*abs(0.00390625*(x^8 + y^8) - 0.5*x + 2*y + 2) = 0, x = -7 .. 7, y = -4 .. 3, z = -3 .. 3, numpoints = 350000, style = surface, color = "Niagara Azure");

On donne une ellipse rapportée à ses axes x^2/a^2+y^2/b^2-1=0 et une droite (D) qui rencontre cette
courbe en 2 points A et B. 
On considère un cercle variable passant parles points A et B et on demande le lieu géométrique des points de rencontre des tangentes communes au cercle et à l'ellipse.
restart;
with(plots);
with(VectorCalculus);
a := 5;
b := 3;
ellipse_eq := (x, y) -> x^2/a^2 + y^2/b^2 - 1;
m := 1;
c := -2;
line_eq := (x, y) -> y - m*x - c;
intersections := solve({line_eq(x, y) = 0, ellipse_eq(x, y) = 0}, {x, y}, explicit);
A := intersections[1];
B := intersections[2];
A := [VectorCalculus:-`+`(VectorCalculus:-`*`(25, 17^VectorCalculus:-`-`(1)), VectorCalculus:-`*`(VectorCalculus:-`*`(15, sqrt(30)), 34^VectorCalculus:-`-`(1))), VectorCalculus:-`+`(VectorCalculus:-`-`(VectorCalculus:-`*`(9, 17^VectorCalculus:-`-`(1))), VectorCalculus:-`*`(VectorCalculus:-`*`(15, sqrt(30)), 34^VectorCalculus:-`-`(1)))];
B := [VectorCalculus:-`+`(VectorCalculus:-`*`(25, 17^VectorCalculus:-`-`(1)), VectorCalculus:-`-`(VectorCalculus:-`*`(VectorCalculus:-`*`(15, sqrt(30)), 34^VectorCalculus:-`-`(1)))), VectorCalculus:-`+`(VectorCalculus:-`-`(VectorCalculus:-`*`(9, 17^VectorCalculus:-`-`(1))), VectorCalculus:-`-`(VectorCalculus:-`*`(VectorCalculus:-`*`(15, sqrt(30)), 34^VectorCalculus:-`-`(1))))];
center_x := VectorCalculus:-`*`(VectorCalculus:-`+`(A[1], B[1]), 2^VectorCalculus:-`-`(1));
center_y := VectorCalculus:-`*`(VectorCalculus:-`+`(A[2], B[2]), 2^VectorCalculus:-`-`(1));
radius := VectorCalculus:-`*`(sqrt(VectorCalculus:-`+`(VectorCalculus:-`+`(A[1], VectorCalculus:-`-`(B[1]))^2, VectorCalculus:-`+`(A[2], VectorCalculus:-`-`(B[2]))^2)), 2^VectorCalculus:-`-`(1));
circle_eq := (x, y) -> (x - center_x)^2 + (y - center_y)^2 - radius^2;
L := (x1, y1, x2, y2, lambda1, lambda2) -> (x1 - x2)^2 + (y1 - y2)^2 + lambda1*ellipse_eq(x1, y1) + lambda2*circle_eq(x2, y2);
eq1 := diff(L(x1, y1, x2, y2, lambda1, lambda2), x1);
eq2 := diff(L(x1, y1, x2, y2, lambda1, lambda2), y1);
eq3 := diff(L(x1, y1, x2, y2, lambda1, lambda2), x2);
eq4 := diff(L(x1, y1, x2, y2, lambda1, lambda2), y2);
eq5 := ellipse_eq(x1, y1);
eq6 := circle_eq(x2, y2);
sols := solve({eq1, eq2, eq3, eq4, eq5, eq6}, {lambda1, lambda2, x1, x2, y1, y2}, explicit);
sols;
lieu_geometrique := [seq([sols[i][1], sols[i][2]], i = 1 .. nops(sols))];
plot(lieu_geometrique, style = point, symbol = cross, color = red, title = "Lieu géométrique des points de rencontre");
Ce code m'a été donné en partie par l'intelligence artificielle (Mistral), mais il se plante. Pourriez-vous corriger les erreurs. Merci.

First 8 9 10 11 12 13 14 Last Page 10 of 2218