nm

7160 Reputation

19 Badges

10 years, 142 days

MaplePrimes Activity


These are answers submitted by nm

You need to be careful which convention to use for spherical coordinates. There is the Physics one and there is the mathematics one. See https://en.wikipedia.org/wiki/Spherical_coordinate_system

Using the Physics one (more common)

evalf(int(int(int(ln(r^2 + theta^2 + phi^2 +1),r=0..2),theta=-Pi/2..Pi/2),phi=0..2*Pi))

97.2256142300

Using the math convention for the angles

evalf(int(int(int(ln(r^2 + theta^2 + phi^2 +1),r=0..2),theta=0..2*Pi),phi=-Pi/2..Pi/2))

97.2256142300

if you use 0..Pi instead of -Pi/2..Pi/2 you get

evalf(int(int(int(ln(r^2 + theta^2 + phi^2 +1),r=0..2),theta=0..2*Pi),phi=0..Pi))

105.5237634000

Not sure which convention you want. Wikepida page above describes these more.

ps. only numerical integration worked in Maple. 

 

 

restart;
ode:=diff(y(x),x)+k*piecewise(y(x)>=0,y(x),y(x)<0,0) =sin(x);
dsolve(ode)

Can't solve it analytically. You can solve this nuemrically only

 

restart;
k:=1;
ode:=diff(y(x),x)+k*piecewise(y(x)>=0,y(x),y(x)<0,0) =sin(x);
sol:=dsolve([ode,y(0)=1],numeric)

Maple used to have many of these cases, but it got better over years handling them.

A trick to bypass this issue, is to delay the substitution of the actual function until after you obtained the series solution. As follows.

Using a generic f(x,y) first, then this function is replaced by the actual value of the function after the series solution is obtained. This makes life much easier for Maple pdsolve.
 

 

restart;

interface(version);

`Standard Worksheet Interface, Maple 2020.1, Windows 10, July 30 2020 Build ID 1482634`

pde := diff(u(x,y,t),t,t) = diff(u(x,y,t),x,x) + diff(u(x,y,t),y,y);
bc := u(x,0,t)=0, u(x,1,t)=0, u(0,y,t)=0, u(1,y,t)=0;
ic := u(x,y,0) =f(x,y),  D[3](u)(x,y,0)=0;
sol := pdsolve({pde, bc, ic});
my_actual_function :=x*y*sin(Pi*x)*sin(Pi*y);
sol:=eval(sol, [infinity=4,f(x,y)=my_actual_function]);

diff(diff(u(x, y, t), t), t) = diff(diff(u(x, y, t), x), x)+diff(diff(u(x, y, t), y), y)

u(x, 0, t) = 0, u(x, 1, t) = 0, u(0, y, t) = 0, u(1, y, t) = 0

u(x, y, 0) = f(x, y), (D[3](u))(x, y, 0) = 0

u(x, y, t) = Sum(Sum(4*sin(n*Pi*x)*sin(n1*Pi*y)*cos(Pi*(n^2+n1^2)^(1/2)*t)*(Int(sin(n1*Pi*y)*(Int(sin(n*Pi*x)*f(x, y), x = 0 .. 1, AllSolutions)), y = 0 .. 1, AllSolutions)), n = 1 .. infinity), n1 = 1 .. infinity)

x*y*sin(Pi*x)*sin(Pi*y)

u(x, y, t) = Sum(Sum(4*sin(n*Pi*x)*sin(n1*Pi*y)*cos(Pi*(n^2+n1^2)^(1/2)*t)*(Int(sin(n1*Pi*y)*(Int(sin(n*Pi*x)*x*y*sin(Pi*x)*sin(Pi*y), x = 0 .. 1, AllSolutions)), y = 0 .. 1, AllSolutions)), n = 1 .. 4), n1 = 1 .. 4)

#now it works        
value(sol)

u(x, y, t) = (1/900)*(225*Pi^2*sin(Pi*x)*sin(Pi*y)*cos(Pi*2^(1/2)*t)-1600*sin(Pi*y)*cos(5^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x)-512*sin(Pi*y)*cos(17^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x)^3+256*sin(Pi*y)*cos(17^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x))/Pi^2-(8/9)*sin(Pi*x)*sin(2*Pi*y)*cos(5^(1/2)*Pi*t)/Pi^2+(256/81)*sin(2*Pi*x)*sin(2*Pi*y)*cos(Pi*8^(1/2)*t)/Pi^4+(512/2025)*sin(4*Pi*x)*sin(2*Pi*y)*cos(Pi*20^(1/2)*t)/Pi^4-(16/225)*sin(Pi*x)*sin(4*Pi*y)*cos(17^(1/2)*Pi*t)/Pi^2+(512/2025)*sin(2*Pi*x)*sin(4*Pi*y)*cos(Pi*20^(1/2)*t)/Pi^4+(1024/50625)*sin(4*Pi*x)*sin(4*Pi*y)*cos(Pi*32^(1/2)*t)/Pi^4

 


 

Download pdsolve.mw

Looking at Wikipeida, it looks like you used different formula. The formula with the origin at center is

You wrote

Where the eccentricity you used is 0.25.

Fixing this, and increasing e, you get ellipse.

e:=0.25; b:=1;
p1:=plot(b/sqrt(1- (e*cos(theta))^2), theta = 0 .. 2*Pi, coords = polar, scaling = constrained,color=red):
e:=0.75;
p2:=plot(b/sqrt(1- (e*cos(theta))^2), theta = 0 .. 2*Pi, coords = polar, scaling = constrained,color=blue):

plots:-display([p1,p2])

Try this. Need to use := and not = for assignment. And why write 1.  instead of just 1 ? This is not Matlab. If you want real numbers, you could always convert the final answer to float, and it is more accurate this way.

 

restart;

H := proc(n::integer)::real; 
   local s, i; 
   s := 0; 
   for i by 2 to n do 
       if i <= n - 1 then 
          s := s + 1/(i*(i + 1)); 
       else 
          s := s + 1/i; 
       end if; 
   end do; 
   return s;
end proc;

A := proc(n::integer, T::procedure)::real; 
       local d1, d2, s; 
       d1 := T(n + 1) - T(n); 
       d2 := T(n + 2) - T(n); 
       s := T(n + 1) - d1*d2/(d2 - d1); 
       return s; 
end proc;

I have not used spacecurve before in Maple, but looking at help, I think you need to do this.

restart;
f:=(x,y)->2*x^2+3*y^2-x*y-6;
subs([x=1,y=1],diff(f(x,y),x));
subs([x=1,y=1],diff(f(x,y),y));
p1:=plot3d(f(x,y),style=patchcontour):
p2:=plots:-spacecurve([x,1,f(x,1)],x=-10..10):
p3:=plots:-spacecurve([1,y,f(1,y)],y=-10..10):
plots:-display([p1,p2,p3])