Preben Alsholm

13471 Reputation

22 Badges

20 years, 211 days

MaplePrimes Activity


These are answers submitted by Preben Alsholm

Use unapply instead to define y:
 

restart;
with(inttrans):
y := unapply(invlaplace(exp(-s)/s, s, t),t);
y(t-1);
y(t-1.1);

 

In order to get an answer from your first use of dsolve, where d1,d2,d3,d4, and d5 are not yet assigned, you need assumptions:
 

restart;
eq := diff(Uy(x), x, x) - piecewise(x < d1, 12*F*x/(E*b*h^3), d1 < x and x < d2, 12*((F + F1)*x - F1*d1)/(E*b*h^3), d2 < x and x < d3, 12*((F + F1 + F2)*x - F1*d1 - F2*d2)/(E*b*h^3), d3 < x and x < d4, 12*((F5 + F4 - F)*x + F*L - F5*d5 - F4*d4)/(E*b*h^3), d4 < x and x < d5, 12*((F5 - F)*x + F*L - F5*d5)/(E*b*h^3), 12*F*(L - x)/(E*b*h^3));
sol:=dsolve({eq, Uy(0) = 0, Uy(L) = 0}) assuming d1<d2,d2<d3,d3<d4,d4<d5;
sol:=value(sol) assuming d1<d2,d2<d3,d3<d4,d4<d5;

 

I also use Windows 10. I got the error both times though. No result.
But then I tried replacing integrand with

integrand2:=simplify(integrand);
and I got
ln(x)/x - 1/3*(9*exp(2)*x - 30*x^2 + 18*exp(2) - 236*x - 450)/((-25 + exp(2) - 5*x)*(x + 3)*x)

both times.

 

interface(version);

`Standard Worksheet Interface, Maple 2021.1, Windows 10, May 19 2021 Build ID 1539851`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1112. The version installed in this computer is 1069 created 2021, September 26, 10:58 hours Pacific Time, found in the directory C:\Users\pkals\maple\toolbox\2021\Physics Updates\lib\`

restart;

integrand:=(((-3*x^2-18*x-27)*exp(2)^2+(30*x^3+330*x^2+1170*x+1350)*exp(2)-75*x^4-1200*x^3-7050*x^2-18000*x-16875)*ln(x)+(12*x^2+54*x+81)*exp(2)^2+(-120*x^3-1106*x^2-3510*x-4050)*exp(2)+225*x^4+3560*x^3+20990*x^2+54000*x+50625)/((3*x^4+18*x^3+27*x^2)*exp(2)^2+(-30*x^5-330*x^4-1170*x^3-1350*x^2)*exp(2)+75*x^6+1200*x^5+7050*x^4+18000*x^3+16875*x^2);

(((-3*x^2-18*x-27)*(exp(2))^2+(30*x^3+330*x^2+1170*x+1350)*exp(2)-75*x^4-1200*x^3-7050*x^2-18000*x-16875)*ln(x)+(12*x^2+54*x+81)*(exp(2))^2+(-120*x^3-1106*x^2-3510*x-4050)*exp(2)+225*x^4+3560*x^3+20990*x^2+54000*x+50625)/((3*x^4+18*x^3+27*x^2)*(exp(2))^2+(-30*x^5-330*x^4-1170*x^3-1350*x^2)*exp(2)+75*x^6+1200*x^5+7050*x^4+18000*x^3+16875*x^2)

integrand2:=simplify(integrand);

(1/75)*(-75*(x+3)^2*((-(2/5)*x-2)*exp(2)+x^2+10*x+(1/25)*exp(4)+25)*ln(x)+(-120*x^3-1106*x^2-3510*x-4050)*exp(2)+(12*x^2+54*x+81)*exp(4)+225*x^4+3560*x^3+20990*x^2+54000*x+50625)/((x+3)^2*((-(2/5)*x-2)*exp(2)+x^2+10*x+(1/25)*exp(4)+25)*x^2)

print("First time");
int(integrand2,x);

print("second time");
int(integrand2,x);
 

"First time"

ln(x)/x-(1/3)*(9*exp(2)*x-30*x^2+18*exp(2)-236*x-450)/((-25+exp(2)-5*x)*(x+3)*x)

"second time"

ln(x)/x-(1/3)*(9*exp(2)*x-30*x^2+18*exp(2)-236*x-450)/((-25+exp(2)-5*x)*(x+3)*x)

 


 

Download issue_int_nov_11_2021_by_nm.mw

I can add that if I continue after the computation above with integrand instead of integrand2 then I get no errors either time. The answer using integrand has a different form though:
ln(x)/x + 1/x + (15*x^2 + (-4*exp(2) + 356/3)*x - 9*exp(2) + 225)/(x*(x + 3)*(-25 + exp(2) - 5*x))
But the difference between the two answers simplies to 0.

Note: In my original answer I used the two arguments for numboccur in the wrong order. I mistakenly used the same order as used by ListTools:-Occurrences. This was pointed out by Carl Love.
So my answer below has been edited accordingly.
####

Using ListTools:-Occurrences on a list L, a vector V (rtable), and a set all having floating point elements can give quite different results.
I use the example by vv: L:=[1., HFloat(1.), 1., 0., 0.].
The results for the set should of course be expected to differ from the results for the list and the vector.

restart;
#showstat(ListTools:-Occurrences);
L:=[1., HFloat(1.), 1., 0., 0.];
V:=Vector(L);
S:={L[]};
ListTools:-Occurrences~(1.,[L,V,S]);                          #[2, 3, 1]
ListTools:-Occurrences~(HFloat(1.),[L,V,S]);                  #[1, 3, 1]
ListTools:-Occurrences~(1,[L,V,S]);                           #[0, 3, 0]
ListTools:-Occurrences~(1.,[L,V,S],evalb@`=`);                #[3, 2, 2]
ListTools:-Occurrences~(HFloat(1.),[L,V,S],evalb@`=`);        #[3, 2, 2]
ListTools:-Occurrences~(1,[L,V,S],evalb@`=`);                 #[3, 2, 2]
numboccur~([L,V,S],1.);              #[2, 2, 1]
numboccur~([L,V,S],HFloat(1.));      #[1, 1, 1]
numboccur~([L,V,S],1);               #[0, 0, 0]

Here are two ways:
 

restart;
X:=<$0..20>;
Y:=sin~(X);
X1:=<seq(i,i=0..10,0.5)>;
Y1:=cos~(X1);
p:=plot(X,Y); 
p1:=plot(X1,Y1,color=blue); 
plots:-display(p,p1);
## An attractive alternative:
plot([<X|Y>,<X1|Y1>],color=["DarkRed","DarkGreen"],thickness=3,linestyle=[1,3]);

 

You could use subsop:
 

## Notice first the structure:
lprint(expr);
## Physics:-`*`(sigma__y,sigma__x,rho)-Physics:-`*`(sigma__y,rho,sigma__x)
## So
res:=subsop([1,1]=H,[1,2]=1,expr);
lprint(res);
## Result: Physics:-`*`(H,rho)-Physics:-`*`(sigma__y,rho,sigma__x)

 

An alternative to DEplot is odeplot as used here.
I do use DEplot for the direction field though.
MaplePrimes21-10-22_ode_phseplot.mw

One of the images:

plots:-implicitplot(abs(x+2)+abs(y)=3,x=-5..1,y=-3..3);
plots:-implicitplot(abs(y)-abs(x)=2,x=-3..3,y=-5..5);

 

Since this integral appears numerically nontrivial I tried using dsolve/numeric instead of evalf/int.
The result for the real part found below is -0.0513608600887187 (too many digits surely).

MaplePrimes21-10-19_int_by_dsolve.mw
 

restart;

Digits:=15:  #

W := -16*(x - 1/2)*x*(t + 2*w)*(ln((m^2 + w*x*(-1 + x))/m^2)*ln(-1/(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)) + ln(-x*w^2*(-1 + x))*ln((x^2 - x)*w + m^2) + ln(1/m^2)*ln((t + w)*(-1 + x)) + ln(-1/(x*w))*ln(m^2) + dilog(x*w^2*(-1 + x)/(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)) - dilog(x*w*(-1 + x)*(t + w)/(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)))/t^3 + 8*(x - 1/2)*((t + w)*x - t/2)*(-t*(w*x^2 + m^2 - w*x)*(t + w)*ln((x^2 - x)*w + m^2) + w*(x*w*(-1 + x)*(t + w)*ln((t + w)/w) + m^2*t*ln(m^2)))*(2*w*x + t)/(w*(t + w)*(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)*t^3*x) + (16*x^2 - 8*x)/(t*w*(-1 + x)) + (2*t*x + 2*w*x - t - 2*w)*(2*w*x + t - 2*w)*(1 - 2*x)*ln((t*x + (-1 + x)*w)/((-1 + x)*w))/(((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)*t^2) + (-1 + 2*x)*(2*m^2 + w*x - w)*(2*w*x^2 + 2*m^2 - 3*w*x + w)*ln(m^2/(m^2 + w*x*(-1 + x)))/(w^2*(-1 + x)^2*((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)) + (-1 + 2*x)*(2*m^2 + w*x - w)*(2*w*x^2 + 2*m^2 - 3*w*x + w)*ln(m^2/(m^2 + w*x*(-1 + x)))/(w^2*(-1 + x)^2*(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)) + (2*w*x + t)*((t + w)*x - t/2)*(x - 1/2)*ln(w^4/(t + w)^4)/(t^2*(w*(t + w)*x^2 - w*(t + w)*x + m^2*t)) - 8*(x - 1/2)*((-2 + 2*x)*w + t)*((-1 + x)*w + (x - 1/2)*t)*((t*x + (-1 + x)*w)*w^2*(-1 + x)^2*ln((t*x + (-1 + x)*w)/((-1 + x)*w)) + (-(t*x + (-1 + x)*w)*((x^2 - x)*w + m^2)*ln((x^2 - x)*w + m^2) + ln(m^2)*m^2*w*(-1 + x))*t)/((t*x + (-1 + x)*w)*w*(-1 + x)*t^3*((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)) + 16*(x - 1/2)*(ln(1/m^2)*ln((t*x + (-1 + x)*w)*(-1 + x)*w/((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)) + ln((x^2 - x)*w + m^2)*ln(1/((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)) + ln((-1 + x)^2*w^2)*ln((x^2 - x)*w + m^2) - dilog((t*x + (-1 + x)*w)*(-1 + x)*w/((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)) + dilog((-1 + x)^2*w^2/((-1 + x)^2*w^2 + w*t*x*(-1 + x) + m^2*t)))*(t*x + 2*(-1 + x)*w)/t^3:

Wf:=unapply(W,m,s,t,w): # W as a function of (m,s,t,w), not x

singular(Wf(1,3,-2,-1),0..1);

# With f(x) = Wf(1,3,-2,-1) we split:

IntegrationTools:-Split(Int(f(x),x=0..1),[1/10,1/3,2/3]);

ode:=diff(u(x),x)=Re(Wf(1,3,-2,-1)):

# Using nonsingular initial points x0 = 1/10 and x0 = 2/3

res:=dsolve({ode,u(x0)=0},numeric,parameters=[x0],abserr=1e-15,relerr=5e-10);

# In res Int(f(x),x=x0..x) is computed.

res(parameters=[1/10]);  # setting initial point x0=1/10

v1:=subs(res(1/3),u(x)); # Int(f(x), x = 1/10 .. 1/3)

v2:=subs(res(0),u(x));   # -Int(f(x), x = 0 .. 1/10)

res(parameters=[2/3]);   # setting initial point x0=2/3

v3:=subs(res(1),u(x));   # Int(f(x), x = 2/3 .. 1)

v4:=subs(res(1/3),u(x)); # -Int(f(x), x = 1/3 .. 2/3)

val:=v1-v2+v3-v4;        # -0.0513608600887187

Int(f(x),x=0..1) = val;

 


 

Download MaplePrimes21-10-19_int_by_dsolve.mw

 

It appears that the fact that a is assigned to 1.4 makes a difference to seq. Try using another index:
 

seq([g(i, x[0], y[0])], i = 0 .. 3); # i instead of a

P.S.

The real reason is that the index 'a' also appears in the definition of f:
 

f := (n, m) -> (-n^2 + b*m + a, n);

It is OK that a is assigned as far as seq is concerned, but that 'a' appears in f is the problem.

Since your piecewise expression begins with
 

piecewise(t < t1, kmax, t1 <= t, -kmax, ...)

and since we must either have t < t1 or t1 <= t, the rest of the expression is never used.
P.S. Before thinking about integrating you should try plotting your expression.
Just pick kmax to be e.g. 1 and try different values of t1. Then you will be able to see if you are getting the step function you intended.

A little experimentation:
 

k := piecewise(t < t1, kmax, t1 <= t, -kmax, 2*t1 + sqrt(2)*t1 <= t, kmax, 3*t1 + 2*sqrt(2)*t1 <= t, -kmax, 4*t1 + 2*sqrt(2)*t1 <= t, 0);
plot(eval(k,{kmax=1,t1=2}),t=-10..10);
plots:-animate(plot,[eval(k,{kmax=1}),t=-10..10],t1=-5..5);
## Maybe this is the ordering that you want (?):
k2 := piecewise(2*t1 + sqrt(2)*t1 <= t, kmax, 3*t1 + 2*sqrt(2)*t1 <= t, -kmax, 4*t1 + 2*sqrt(2)*t1 <= t, 0,t < t1, kmax, t1 <= t, -kmax);
plot(eval(k2,{kmax=1,t1=2}),t=-10..10);
plots:-animate(plot,[eval(k2,{kmax=1}),t=-20..20],t1=-5..5,frames=100);

You may also try this:
 

int(eval(k,t1=2), [t = 0 .. t, t = 0 .. t, t = 0 .. t, t = 0 .. t]);
int(eval(k2,t1=2), [t = 0 .. t, t = 0 .. t, t = 0 .. t, t = 0 .. t]);

And finally this:
 

int(k2, [t = 0 .. t, t = 0 .. t, t = 0 .. t, t = 0 .. t]) assuming t1>0,t>0;

 

Would this be OK:

 

Explore(plot(a*x^2+b*x^3,x=-2..2,caption=typeset("a^2+b^2 = ",a^2+b^2)),
parameters = [a = -1.00..1.00, b=-1.00..1.00],placement=right );

 

You need a new license for each new version of Maple. Updates to a given version are characterised by decimal points as in "Maple 2021.1", which is the first update of "Maple 2021". Updates are free, new versions are not. Somebody, you or e.g. your university must pay for it.

If you get an error running a worksheet made for a later version than yours, you could post the worksheet here, then someone will most likely be able to help.

Use the fat green uparrow in the editor to attach the worksheet.

If you specify theta then you can in some cases get a formula for the solution as also vv is pointing out.

restart;
# Let A=-P-beta*S+alpha1-alpha2  and N1 = N+1 for simplicity.
ic1 := q(T) = 0;
ode1 := diff(q(t), t) + theta*q(t)/(N1 - t) = A - beta2*q(t);
sol1:=dsolve({ode1,ic1});
# Example:
eval(sol1,theta=1);
value(%) assuming t<N1,T<t;
# Making it easier to input other values of theta:
R:=proc(theta1) local val:=eval(sol1,theta=theta1);
   value(val) assuming t>T, t<N1;
end proc;
R(1/2);
R(1);
R(3/2);
R(2);
R(-1);
R(-1/2);

In unsuccessful cases you can solve numerically, either the integral or by using dsolve/numeric (the latter preferable in my view)

You will need an extra tilde:
 

10^~(pH-~pK);

PS. You don't need a tilde when multiplying a vector by a scalar. You can just use the ordinary multiplication * as in

pCO2*0.03;

 

5 6 7 8 9 10 11 Last Page 7 of 158