MaplePrimes Questions

Perhaps the question is trivial, but I could not find the solution.

I am solving numerically an ODE (e.g., a simple harmonic oscillator) with the righthand side that contains a random part. For example it is

eq:=diff(a(t),t,t) + a(t) = (1+0.01*R(t))*cos(5*t);

where R(t) is a random function of t. How can I make such a function?

The naive attempt: 

eq:=diff(a(t),t,t) + a(t) = 3.*(1+0.1*rand()/1000000000000.)*cos(5.*t);


gave me a fixed (while random) value, e.g.

...

But, I need this coefficeint to be random each time step.

Any suggestions are very welcome!

 

 

 

after following a example , got error

 

                             2                  
               1   / d      \    1        2     2
               - m |--- x(t)|  - - m omega  x(t)
               2   \ dt     /    2              
Error, (in Mechanics:-LagrangeEqs) invalid input: subs received subst1, which is not valid for its 1st argument
Error, invalid input: Mechanics:-GeneralSol expects its 1st argument, eqs, to be of type list, but received eqs
Error, invalid input: rhs received sol, which is not valid for its 1st argument, expr
L;

 

Mechanics := module()
export SetVariables, LagrangeEqs, GeneralSol;
option package;
local subst1, subst2, varN, t;

SetVariables = proc( vars:: list, time )
local i;
t := time;
varN := nops( vars );
subst1 := {};
subst2 := {};
for i from 1 to var N do
subst1 := subst1 union
{vars[i](t) = q[i], diff(vars[i](t), t) = v[i]};
subst2 := subst2 union
{q[i] = vars[i](t), v[i] = diff(vars[i](t), t)};
end do;
print( subst1 );
print( subst2 );
NULL;
end proc;

LagrangeEqs := proc (L)
local i, l1, term1, term2;
l1 := subs(subst1, L):
for i to varN do
term1 := [seq(diff(subs(subst2, diff(l1, v[i])), t), i = 1..varN)]:
term2 := [seq(subs(subst2, diff(l1, q[i])), i = 1..varN)]:
end do;
[ seq(simplify(term1[i]-term2[i]) = 0, i = 1..varN) ];
end proc;

RayleighEqs := proc(L, R)
local i, l1, r1, term1, term2, term3;
l1 := subs( subst1, L ):
r1 := subs( subst1, R ):
for i from 1 to varN do
term1:=[seq(diff(subs(subst2, diff(l1, v[i])), t), i=1..varN)]:
term2:=[seq(subs(subst2, diff(l1, q[i])), i=1..varN)]:
term3:=[seq(subs(subst2, diff(r1, v[i])), i=1..varN)]:
end do:
[ seq(simplify(term1[i]-term2[i]+term3[i]), i=1..varN) ];
end proc;

LagrEqsII := proc( L, Q::list )
local i, l1, term1, term2;
l1 := subs(subst1, L):
for i to varN do
term1 := [seq(diff(subs(subst2, diff(l1, v[i])), t), i = 1 .. varN)]:
term2 := [seq(subs(subst2, diff(l1, q[i])), i = 1 .. varN)]:
end do;
[seq(simplify(term1[i]-term2[i]) = Q[i], i = 1 .. varN)];
end proc;

LagrEqsIII := proc (L, R, Q::list)
local i, l1, r1, term1, term2, term3;
l1 := subs(subst1, L):
r1 := subs(subst1, R):
for i to varN do
term1 := [seq(diff(subs(subst2, diff(l1, v[i])), t), i = 1 .. varN)]:
term2 := [seq(subs(subst2, diff(l1, q[i])), i = 1 .. varN)]:
term3 := [seq(subs(subst2, diff(r1, v[i])), i = 1 .. varN)]:
end do;
[seq(simplify(term1[i]-term2[i]+term3[i]) = Q[i], i = 1 .. varN)];
end proc;

GeneralSol := proc (eqs::list)
local i, initconds, eqs2;
initconds := NULL:
eqs2 := eqs[][]:
for i to varN do
initconds:=VarNames[i](0)=q[i], (D(VarNames[i]))(0)=v[i], initconds:
end do;
dsolve({initconds, eqs2});
end proc;


end module;

with(LibraryTools):
LibLocation := cat("c:\\Temp");
Save(Mechanics, LibLocation);
with(FileTools):
march('list',"c:\\Temp\\Mechanics.lib");
save(Mechanics, "c:\\Temp\\Mechanics.m");
read "c:\\Temp\\Mechanics.m";

 

with(Mechanics):
SetVariables([x], t);
L := (1/2)*m*diff(x(t), t)^2 - (1/2)*m*omega^2 * x(t)^2;
eqs := LagrangeEqs(L);
sol := GeneralSol( eqs );
X := unapply( rhs(sol), t );

 

 

I am doing a Calculus assignment and I can't find the commands for certain things.

1.Given the function f(x) = ((x+1)^2) / (1+x^2)

i) The domain of continuity of f(x)

ii) The intervals of increase and decrease of f(x) by using test points.

 

2. Use the IVT to prove existence of a root to the equation x^3 +10x^2 -100x +50=0 in the interval [-20,10]. Use again the IVT to show that there is a 1st root in [-17,-15], a 2nd toot in [0,1] and a 3rd root in [ 5,6]. Find or approximate those roots with Maple. (the bolded is what I need help).

I ran into a problem with the physics package that I subsequently solved. But I am wondering whether this would be a candidate for an SCR and/or be considered a bug.

The calculation I am trying is actually (so far) very simple.

I define a Hamiltonian H:

H := sqrt(p_^2*c^2+m^2*c^4); # note the square of vector p_

p_:=p1*_i+p2*_j+p3*_k;

H;

So far so good. Now I want to take the differentials of H against the components of p:

diff(H,p1) assuming c::real;

Hmm... I am not sure why the p2 and p3 still show up; but then, the product between the unit vectors should be 0 for different ones and one for equal unit vectors so maybe this is ok.

But H behaves weird: I can simplify it:

but if I try to do anything with it, it barfs:

dH+0;

Error, (in Physics:-Vectors:-+) invalid operation * between vectors _i and _j

As it turns out the issue is the square of the vector p_. Maple (or rather, Physics) does not recognize that it needs to expand p_^2 as p_.p_ and seems to treat is like p_*p_.

I would like Edgardo---& others more experienced with the Physics package than I am---to look at this. I do not understand the Physics package well enough to judge whether overloading the exponentiation operator to make this work is the right thing.

The example works once I replace p_^2 by p_.p_. But the ^2 notation is fairly standard usage so it feels slightly awkward.

Thanks,

Mac Dude.

Derivation_of_H.mw

The following illustrates a way to edit code when in Standard Worksheet.  Is there a bettery way?Thanks in advance,

Les

Let

and f=

The elements of W are none zero. I want a procedure that return "true" if f is none zero w.r.t. W and return

"false" otherwise.

hello 

 

if you have a function lets say: 2x+1/4-x3

 

 

Now if you have to plot the graf, how should you know what the x and y shoud be? I mean you do like: plot(f(x),x=..

 

what should it be? i find it hard :(

Hello, 

 

I'm trying built a graph in cylindrical coordinates. I have 3 matrix X(20,30); Y(20,30), and temperatura T(20,30). The matrices X and Y are already in cylindrical coordinates. In matlab is just "pcolor (X,Y,T)". Anyone can help me?

X and Y are the coordinates of cylinder discretized (z was not included)

I have this plot in matlab, but i need it in maple.

Thanks

Hello, forgive me if I used bad english, I am not a native speaker.

 

Anyhow: I have to decide the set of coordinates looking at the grafs intersections.  (I hope you understand that)

 

This is my function: f(x)=1/4*x3-x2-x+4

 

When you plot the function you see that the intersections is (-2,0) (2,0) and (4,0)

 

BUT I have to use a command to find these three intersections, plzz help me!

 

THANK YOU indeed.

 

 

[point of] intersection

Are there any commands in maple that will help me find a suitable function that approximates the numerical solution of:



  restart;
  PDE := diff(v(x, t), t) = diff(v(x, t), x, x);
  JACOBIINTEGRAL := int(JacobiTheta3(0, exp(-Pi^2*s))*v(1, t-s)^4, s = 0 .. t);
  IBC:= D[1](v)(0,t)=0,
        D[1](v)(1,t)=-0.000065*v(1, t)^4,
        v(x,0)=1;
#
# For x=0..1, t=0..1, the solution varies only very slowly
# so I have increased the timestep/spacestep, just to speed
# up results generation for diagnostic purposes
#
  pds := pdsolve( PDE, [IBC], numeric, time = t, range = 0 .. 1,
                  spacestep = 0.1e-1, timestep = 0.1e-1,
                  errorest=true
                )

diff(v(x, t), t) = diff(diff(v(x, t), x), x)

 

int(JacobiTheta3(0, exp(-Pi^2*s))*v(1, t-s)^4, s = 0 .. t)

 

(D[1](v))(0, t) = 0, (D[1](v))(1, t) = -0.65e-4*v(1, t)^4, v(x, 0) = 1

 

_m649569600

(1)

#
# Plot the solution over the ranges x=0..1,
# time=0..1. Not a lot happens!
#
  pds:-plot(x=1, t=0..1);

 

#
# Plot the estimated error over the ranges x=0..1,
# time=0..1
#
  pds:-plot( err(v(x,t)), x=1,t=0..1);

 

#
# Get some numerical solution values
#
  pVal:=pds:-value(v(x,t), output=procedurelist):
  for k from 0 by 0.1 to 1 do
      pVal(1, k)[2], pVal(1, k)[3];
  od;

 

t = 0., v(x, t) = Float(undefined)

 

t = .1, v(x, t) = .999977377613528229

 

t = .2, v(x, t) = .999967577518313666

 

t = .3, v(x, t) = .999959874331053822

 

t = .4, v(x, t) = .999952927885405241

 

t = .5, v(x, t) = .999946262964885979

 

t = .6, v(x, t) = .999939702966688881

 

t = .7, v(x, t) = .999933182128311282

 

t = .8, v(x, t) = .999926675964661227

 

t = .9, v(x, t) = .999920175361791563

 

t = 1.0, v(x, t) = .999913676928735229

(2)

 

 

 

Download PDEprob2_(2).mw

 

I am refering to the first graph, is there a way in maple to find an explicit suitable approximating function?

I.e, I want the function to have the same first graph obviously, it seems like addition of exponent and a line function, I tried plotting exp(-t)-0.3*t, it doesn't look like it approximates it very well. Any suggestion on how to implement this task in maple?

Thanks.

 

I'm have used a program to find the roots of a function 

 

f:=x*cos(x)-sin(x)*sin(x/1000);
/ 1 \
x cos(x) - sin(x) sin|---- x|
\1000 /

x_max:=50; x_min:=-50; step:=2; i_max:=(x_max-x_min)/step;
50
-50
2
50

j:=1:
for i from 0 to i_max by 1 do
x0:=x_min+i*step;
x[j]:=fsolve(f=0,x=x0);
j:=j+1;
end:

 

and my output was of the form of multiple "potential" roots and a bunch of which are the same. So I tried to get rid of the ones which were the same before actually finding the ones which ARE roots. To do that I done....

 

 

j := 1; for j to 50 do if x[j]-x[j+1] = 0 then ignore(x[j]) else print(x[j]) end if end do:

 

and it got rid of the ones which are of the above form but some roots are the same and seperated by more than 1 ... i.e x[ j ]= x[j + 2] or some other number. 

 

Basically I am trying to generalise the above for loop for all "numbers" instead of 1 but when I try some things the for loop doesnt like it. 

Any help would be good!

 

 

Say I have an equation of ax^2 + by^2 = 0,

I would like to plot a graph of y^2 against x^2...

How do i do that?

 

Hello i want to solve the differential equation but i have these problem i don't understand  why !?

restart;
with(LinearAlgebra):
with(student):
P:=180000:
Vt:=P/m;
m:=1.4787880*10^5-t*606.06:
g:=9.81:
T:=176:
pi:=evalf(Pi):

Euler_x := -(diff(lambda3(t), t)) = 0;
Euler_y := -(diff(lambda4(t), t)) = 0;
Euler_Vx := -lambda3(t)-(diff(lambda1(t), t)) = 0;
Euler_Vy := -lambda4(t)-(diff(lambda2(t), t)) = 0;
Euler_theta := lambda1(t)*sin(theta)-lambda2(t)*cos(theta) = 0;
transversalnost:=y(t)-lambda1(t)*Vt*cos(theta)-lambda2(t)*Vt*sin(theta)+lambda2(t)*g-lambda3(t)*Vx(t)-lambda4(t)*Vy(t)=0;

transversalnost:=eval(transversalnost,t=176);

sys:={Euler_x, Euler_Vx, Euler_y, Euler_Vy, theta=arctan(lambda2(t)/lambda1(t)), diff(Vx(t),t)=Vt*cos(theta), diff(Vy(t),t)=Vt*sin(theta)-g, diff(y(t),t)=Vy(t), diff(x(t),t)=Vx(t),x(0)=0, y(0)=0.302, lambda1(0)=0, lambda2(0)=0, lambda3(0)=0, lambda4(0)=0,transversalnost, x(176)=120};

ans:=dsolve(sys, numeric, output=listprocedure):

Error, (in dsolve/numeric/bvp/convertsys) unable to convert to an explicit first-order system

thanks for your help

 

Download 1234.mw

Hi everyone,

 

I'm trying to solve the following eqauation but Maple gives me the answer (( RootOf(mexp(-_Z*(m-1))*d^2-theta+_Z*theta-theta*c*t__kj) ))

 

The equation is:

solve(mexp(-(m-1)*t__ij)*d^2-theta+theta*t__ij-theta*(sum(t__kj, k = 1 .. c))-m*eta*(diff((1-1/exp(t))^m, t)) = 0, t__ij);

 

Could you please help me??

 

What is the meaning rootOF? Is there any explicit solution to that equation??

 

Thank you for your help

Please how do I solve the above 2nd order differential equation (F and K are constants)?

I have the following boundary conditions:

Many thanks!

First 1215 1216 1217 1218 1219 1220 1221 Last Page 1217 of 2434