MaplePrimes Questions

I want a maple code to solve the caputo fabrizio differential equations using Runge Kutta method with implicit functions and impulsive conditions in maple. Is there any code structure for that. 

restart;
with(Student[NumericalAnalysis]);
with(plots);
with(DEtools);
f := proc(u, r) local res; res := 1/25*r^2 + (sin(u(r)) + sin(diff(u(r), [r $ 1/5])))/(r^2 + 47); return res; end proc;


RK4 := proc(f, u0, r0, h, n) local u, r, i, k1, k2, k3, k4; u := Vector(n + 1); r := Vector(n + 1); u[1] := u0; r[1] := r0; for i to n do k1 := f(u[i], t[i]); k2 := f(u[i] + 1/2*h*k1, r[i] + 1/2*h); k3 := f(u[i] + 1/2*h*k2, r[i] + 1/2*h); k4 := f(u[i] + h*k3, r[i] + h); u[i + 1] := u[i] + 1/6*h*(k1 + 2*k2 + 2*k3 + k4); r[i + 1] := r[i] + h; end do; return [u, r]; end proc;
RK4 := proc (f, u0, r0, h, n) local u, r, i, k1, k2, k3, k4; u 

   := Vector(n+1); r := Vector(n+1); u[1] := u0; r[1] := r0; 

   for i to n do k1 := f(u[i], t[i]); k2 := f(u[i]+(1/2)*h*k1, 

   r[i]+(1/2)*h); k3 := f(u[i]+(1/2)*h*k2, r[i]+(1/2)*h); k4 := 

   f(u[i]+h*k3, r[i]+h); u[i+1] := u[i]+(1/6)*h*(k1+2*k2+2*k3+k4\

  ); r[i+1] := r[i]+h end do; return [u, r] end proc


u0 := cos(abs(0.9))/15;
                      u0 := 0.04144066455

r0 := 0;
                            r0 := 0

h := 0.1;
                            h := 0.1

n := 100;
                            n := 100

solution := RK4(f, u0, r0, h, n)

u := solution[1];
r := solution[2];
plot(u, r, style = line, color = blue, labels = ["Time (r)", "Solution (u)"]);
 is this correct to solve the implicit fractional differential equations using 4th order Runge-Kutta Method. will fsolve command  solve the fractional differential equations ?

Hello
i am using maple 2023 and the physics package and have the following question:
I want to define a gauge-  plus coordinate covariant derivative i.e.
assuming i,j,k are SO(3) indices and greek indices describe 4-dim space-time (not necessary flat)
i need the following derivative:

D_sigma F_i _rho _lambda = nabla_sigma F_i _rho _lambda + epsilon_i ^j ^k  A_j_sigma  F_k~rho~lambda
with _ meaning lower indices and ^ upper indices and nabla the convenient coordinate covariant derivative of general relativity.
F is a tensor objekt with 2 space time indices and 1 so(3) indices (e.g. Yang Mills field strength) and A is the so(3)gauge potential
How can i define this Differentialoperator with the physics package.
I.e. i want to work with SO(3) Yang-Mills Fields in curved space time and need this generalized Differentialoperator
thanks for helping. I hope its clear from this ascii text in the screen
regards Michael

I want to find the formula for seq: 

För example 

{0,4,16,36,64,100,..}

{0,3,6,11,18,27.38,...}

How do i revers i backword fo get arithmetic sequence formula. I now the answare but want to learn how it's done in maple. I tried the app but i was not able to solve it. I have read the help and it looks like you have to use rsolve. Does anyboy has a sample to do not is trail and error. 

restart;

Here we have a pretty well-behaved trig function:

y := t -> 144*cos(t)^6 - 216*cos(t)^4 + 32*cos(t)^3 + 81*cos(t)^2 - 24*cos(t) + 17;

proc (t) options operator, arrow; 144*cos(t)^6-216*cos(t)^4+32*cos(t)^3+81*cos(t)^2-24*cos(t)+17 end proc

plot(y(t), t=0..2*Pi, view=0..35);

Maple 2023 plots y^(3/2) with a strange artifact at t = Pi:

plot(y(t)^(3/2), t=0..2*Pi, view=0..200);

Any reason for that?  Maple 2021 and earlier used to produce the correct plot:

  

Download bug-in-plot.mw

Hi.

why in eq1 some parameters such as beta 1, Q110,... are not placed (They defined before eq1 !!!!)

Thanks

TRASH.mw

When I use IdentifySmallGroup(DihedralGroup(4)), I will get result 8,3. Then I know DihedralGroup(4) is SmallGroup(8, 3) actually. But I will get different result when I use it in IsTransitive:

IsTransitive(DihedralGroup(4), [1, 2, 3, 4])

true

IsTransitive(SmallGroup(8, 3), [1, 2, 3, 4])

false

How to rectify this error.

NF-1.mw

How should optional input parameters be handled for procedures. The example has three optional inputs 

vars:=[x,y]   ,  clr:="b"   and prnt:="y"  . if one wants to change prnt to"n", vars and clr values must be entered.

{vars:=[x,y]  } , { clr:="b" }  and{ prnt:="y"}  this is a good method because one just enteres prnt="n".  But have to remember the input parameter name prnt.

I have a 3rd option, but it is to complicated and probably unreliable to use in practice.  and with more than 3 optional inputs too difficult to code.

I am wondering  are the other approaches and what is the prefered methodology. I have about 30+ procedures to apply this to in a package.

Edit:-  I can change the prnt to boolean true, false instead of "y" , "n".  That would make the all the optional inputs different types.

In Test1 its should be vars::list:=[x,y] not vars::{list , `string`}:=[x,y]

restart

Geomclr := "b"

"b"

(1)

NULL

NULL

NULL

Test1 := proc (A, B, vars::{list, string} := [x, y], clr::string := Geomclr, prnt::string := "y") if vars::string then clr := vars; vars := [x, y] end if; if clr = "y" or clr = "n" then prnt := clr; clr := Geomclr end if; print(clr); if prnt = "y" then print("good") end if; A*vars[1]+B*vars[2] end proc

NULL

Test1(A, B)

A*x+B*y

(2)

Test1(A, B, [r, s], "n")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, "g")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, "n")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, [x, y], "b", "n")

A*x+B*y

(3)

 

 

NULL

``

NULL

 

NULL

Test2 := proc (A, B, { vars::{list} := [x, y], clr::string := Geomclr, prnt::string := "y" }) print(clr); if prnt = "y" then print("good") end if; A*vars[1]+A*vars[2] end proc

NULL

NULL

Test2(A, B)

A*x+A*y

(4)

Test2(A, B, clr = "r")

A*x+A*y

(5)

Test2(A, B, prnt = "n")

A*x+A*y

(6)

Test2(A, B, prnt = "n")

A*x+A*y

(7)

Test2(A, B, prnt = "n", clr = "green", l = [r, s])

A*x+A*y

(8)

``

 

# 3 This is possible but is a very complicated method of handling the optional inputs and difficult the handle altered sequence on inputs.

NULL

Test3 := proc (A, B, vars::{list, string} := [x, y], clr::string := Geomclr, prnt::string := "y") local varsl, clrl, prntl; global Geomclr; varsl := vars; clrl := clr; prntl := prnt; if vars::string then varsl := [x, y]; if vars = "y" or vars = "n" then prntl := vars; clrl := Geomclr elif vars = "r" or vars = "g" or vars = "b" then clrl := vars end if elif vars::list and clr = "y" or clr = "n" then prntl := clr; clrl := Geomclr end if; if clr = "y" or clr = "n" and vars::string then prntl := clr; clrl := vars end if; print("Colour print out ", clrl); if prntl = "y" then print("This is a test Message") end if; A*varsl[1]+B*varsl[2] end proc

NULL

Test3(A, B)

A*x+B*y

(9)

Test3(A, B, [r, s])

A*r+B*s

(10)

Test3(A, B, [r, s], "n")

A*r+B*s

(11)

Test3(A, B, "n")

A*x+B*y

(12)

Test3(A, B, [r, s], "r", "n")

A*r+B*s

(13)

Test3(A, B, "r", "n")

A*x+B*y

(14)

Test3(A, B, "n", "r")

A*x+B*y

(15)

NULL


 

Download Q_2024-02-25_Test_proc_Args.mw

Cong:=proc(n)
 local  a,b,An,Bn,Cn,Dn:
if n mod 2 = 1    
An:=0:     Bn:=0:    
for a  from (round(-sqrt(n/(2)))) to round(sqrt(n/(2)) )
do:           
for b  from (round(-sqrt(n)) )to round(sqrt(n) )do :               
if (sqrt(n-2*a^(2)-b^(2)) )/(32)isInteger                      
then An:=An+1                
elif (sqrt(n-2*a^(2)-b^(2)) )/(8) isInteger                      
then Bn:=Bn+1  fi:          
od:  od:
 if 2*An=Bn  
 return(True)  else  return(False)
fi: else if n mod 2 = 0 : 
Cn:=0:  Dn:=0:      
for a  from (round(-sqrt(n/(8)))) to round(sqrt(n/(8)) )
do :          
 for b  from (round(-sqrt(n/(2)))) to round(sqrt(n/(2))) do:                 
f (sqrt(n/(2)-4*a^(2)-b^(2)) )/(32)isInteger                      
then Cn:=Cn+1                
elif (sqrt(n/(2)-4*a^(2)-b^(2)) )/(8) isInteger
then Dn:=Dn+1 fi: od:  od:  
if 2*Cn=Dn:   
return(True)  else  return(False)fi:  
end:  

Why do I get this messge : Error, unterminated procedure. Thank you.

ow to get plot for the exact solution of a piecewise function and i need the correct plot which has curve started at y-axis (0.5) and goes till 2?

Hello,
I am a beginner on Maple and I am working on approximate solutions of partial differential equations.
After finding the approximate solution I wanted to compare both the plots (The exact solution and the approximate one), is here any tool or command that allows me to do so ?

Thanks in Advance !

I want to know the change of the web during the web handling process, so I attached the probe, and it shows the checkboxes to observe the velocity and tension values as shown in the picture, but there are 3 additional checkboxes like Force - T2 / real - e / real - e2, what does this mean?

Using textplot  is there anything that can be done to to increase the offest of alignI would like to raise  P3 at top of graph up a bit and S3 down. they are {centre, above} and {centre,below}. I know I can tie them to a different point  coordinate to begin with but that is messy to control inside a procedure.

How to compare the magnitude (the absolute value, ignoring the sign) of two multi-parameter functions f_1 and f_2?

Note that all my parameters can only take stricly positive values. Specifically, I want to know the ranges of parameter values for which f_1 > f_2, f_1 < f_2, and f_1 = f_2. Is solve(f_1 > f_2) etc. the best way to do this? If so, how to specify solve() so that it incorporates all three (>,<,=) comparisons and do not ignore the strict positivity assumption? Is there any other command other than solve()?   

Example with only two parameters sigma__v and sigma__d:

restart

 # Parameters always positive

assume(0 < sigma__d, 0 < sigma__v);
interface(showassumed=0);

1

(1)

Diff('lambda__1', sigma__v) = sqrt(5)/(5*sigma__d);
f__1 := rhs(%);
Diff('lambda__1', sigma__d) = -sqrt(5)*sigma__v/(5*sigma__d^2);
f__2 := abs(rhs(%));

Diff(lambda__1, sigma__v) = (1/5)*5^(1/2)/sigma__d

 

(1/5)*5^(1/2)/sigma__d

 

Diff(lambda__1, sigma__d) = -(1/5)*5^(1/2)*sigma__v/sigma__d^2

 

(1/5)*5^(1/2)*sigma__v/sigma__d^2

(2)

plot3d([f__1,f__2], sigma__v=0.001..10, sigma__d=0.001..10, view=0..5, color=[red,blue]);

 

``

NULL

Download parametric_comparison.mw

Note that f_1 depends only on sigma__d but f_2 depends on both sigma__v and sigma__d. Of course I can directly plot the two curves in 3d in this simple case, but I am looking for a systematic way to do parametric comparisons so that I don't have to "eyeball" the threshold values (if any exist). Most importantly, I can't plot at all once my functions depend on more than two parameters.

 Thanks.

EDIT: perhaps "variables" is a better word than "parameters" here.

First 127 128 129 130 131 132 133 Last Page 129 of 2426