## Looks like a regression bug in dsolve...

Applying Maple 2023's dsolve to the ODE shown below yields the solution y(t)=0 which is obviously incorrect.  Maple 2021 and earlier used to give a nonzero (albeit not very useful) answer.

 > restart;
 > F := (t-1)*(t-2)/(t^2+1)^3*(Heaviside(t-2)-Heaviside(t-1));

 > plot(F, t=0..4);

 > de := diff(y(t),t,t) + diff(y(t),t) = F;

 > ic := y(0)=0, D(y)(0)=0;

Huh?

 > dsolve({de,ic}, y(t));

Specifying method=laplace will make that work, but how is an

unsuspecting user to know that what's obtained above is incorrect?

## better way to come up with new constant of integra...

many times I have an expression with constant of integrations in it and need to integrate., So need to make sure to add a new constant of integration which is not already used.

Currently I do this

```restart;
sol:=x-_C1*x+_C3*x^2;
myconstants:=indets(sol,And(symbol, suffixed(_C, nonnegint)));
map(X->String(X),myconstants);
map(X->X[3..],%);
map(X->:-parse(X),%);
n:=max(%);
new_constant:=_C||(n+1);```

This make _C4 as the new constant.

This assumes all constants have form _Cn which is what I use. It finds all _Cn's then converts each to string, then remove _C part from the string leaving the number, then find the maximum one and adds 1 to it to generate new constant to use,

Is there a better way to do this? Even though the above works, I have feeling there might be better way.

## Error, (in RootFinding:-RSGateway:-refine_uni_tri)...

I would like to get a (necessary and sufficient) condition on real parameters , , and  for which there exists (at least) one non-negative solution to
A convenient way to formulate this is using quantifiers. Unfortunately, if I run

`QuantifierElimination:-QuantifierEliminate(:-exists([x],:-And(x>=0,9*x^4+c<9*a*(x-1)+3*b*(x^2-1)+c*x^3)));`

Maple will simply output

Error, (in RootFinding:-RSGateway:-refine_uni_tri) invalid input: RootFinding:-RSGateway:-try_refine_iso_tri expects its 1st argument, box, to be of type nonemptylist([rational, rational]), but received [8019*x^2+(-9*v__2^2-96552*v__2-279834912)*x+49*v__2^3+78318*v__2^2-387436932*v__2+121801800168, v__2^4+2052*v__2^3-5536296*v__2^2+3575222064*v__2-710903793888]

As an alternative method, one can execute

```RealDomain:-solve([x >= 0, 9*x**4 + c < 9*a*(x - 1) + 3*b*(x**2 - 1) + c*x**3], 'parameters' = {a, b, c});
Warning,  computation interrupted
```

Regretfully, this time the computation is not done in several minutes (so one may have to abort it manually).

So, what is the proper approach to the above problem in Maple (without any a priori knowledge, if possible)?

## Incorrect `limit`?...

For instance, considering the expression  ≔

```restart;
expr := exp(1+LambertW(x))*(exp(1)*x+ln(sqrt(2*Pi))-lnGAMMA(1/2+exp(1+LambertW(x)))) assuming x >= -1/exp(1):```

The following limit can be calculated directly:

```1/:-limit(expr, x = +infinity, 'left');
24
```

We can also evaluate ,

```:-limit(1/expr, x = +infinity, 'left'); # `MultiSeries:-limit` also returns wrong result.
0

```

However, according to , the limit value 0 cannot be correct.
So is this a bug? (And has this been fixed in the forthcoming version?)

## Compute Integral in Maple numerically ?...

I what compute integral numerically with Precision 14 Digits. I try with:

```evalf[2](Int(abs(sin(x^4))/(sqrt(x) + x^2), x = 0 .. infinity, method = _d01amc, methodoptions = [maxintervals = 50000]));# Works with 2 digits only.
```

I tried all the options and I failed to calculate with more precision.

with change variable: x = -ln(t) I got:

`evalf[2](Int((ln(t)^2 - sqrt(-ln(t)))*abs(sin(ln(t)^4))/(ln(t)*(ln(t)^3 + 1)*t), t = 0 .. 1, method = _d01akc, methodoptions = [maxintervals = 500]));#Gives an error!!!`

Thanks.

## Trying to typeset Dotproduct "&." on a plot...

I need to produce some diagrams for the help pages of my package. I trying to typeset the dot product "." on a plot but keep getting a % symbol. I have tried without typesetting but makes no differance.

 > restart
 >
 >
 > Sdim:=proc(A,B,C,clr::string,S:=NULL)     description"plots spread symbol";     uses plots,plottools;     local aa,bb,c,d,e,f,g,h,k,p1,v1,v2,vab,vac;     vab:=Vector(B-A);     vac:=Vector(C-A);     aa:=(B-A)/5;     bb:=(C-A)/5;     p1:=plottools:-point([A,B,C],symbol=solidcircle);     c:= plottools:-line(A+aa,A+bb);     d:=plottools:-line(A,B);     e:=plottools:-line(A,C);     f:=plots:-textplot([op(1.1*(A+(aa+bb)/2)+[1.5,0]), typeset(S)]);   #print S     g:=plots:-textplot([op(.9*A), typeset([x[1],y[1]])]);  #[x1,y1]     h:=plots:-textplot([op(1.1*B), typeset([x[2],y[2]])]);  #x2,y2]     k:=plots:-textplot([op(1.05*C), typeset([x[3],y[3]])]);  #x3,y3]     v1:=plots:-textplot([op(A+(B-A)/2+[.2,-.2]), typeset(`#mover(mi("v"),mo("⇀"))`[a])]);   # vector symbol     v2:=plots:-textplot([op(A+(C-A)/2+[-.2,.2]), typeset(`#mover(mi("v"),mo("⇀"))`[b])]);   #vector symbol     display(p1,c,d,e,f,g,h,k,v1,v2,axes=none,scaling=constrained,caption="Spread between two vectors");    #place title under diagram end proc
 >
 (1)
 > Spr:=S=1-(`#mover(mi("v"),mo("⇀"))`[b-a]%.`#mover(mi("v"),mo("⇀"))`[b-a])^2/(`#mover(mi("v"),mo("⇀"))`[a]%.`#mover(mi("v"),mo("⇀"))`[a])/(`#mover(mi("v"),mo("⇀"))`[b]%.`#mover(mi("v"),mo("⇀"))`[b]);
 (2)
 > Sdim([1,2],[5,1],[4,7],"blue",Spr);
 >
 >

## Alter default setting of conjugate=true?...

is there a way to set conjugate=true  to false as a default for BilinearForm?  This would be used inside a package.

```restart;
with(LinearAlgebra);

v := <x, y>;
BilinearForm(v, v);
BilinearForm(v, v, conjugate = false);
```

## Alternative Argument spelling in a procedure...

This is something I use a fair bit. I have procedures with alternative spelling options for the colours Red Green and Blue.
Have shown a single example copied from  an overloaded procedure. It there a nicer way of handling this than what I am doing?
There is a section in help under "Procedure Parameter Declarations" on "Indexed Keyword Parameters"  but I don't see how to use it here. These procedures are used inside a package.

 > restart
 >
 > GeomClr:="Blue";  # can be "Blue", "blue", "B", "b"  or;                   #        "Green", "green", "G", "g"  or;                   #        "Red2, "red", "R", "r"; Prntmsg:="y" ; #  or anything that is not"y"
 >
 (1)
 > spread:=proc(p0::{satisfies(s -> type(s, [algebraic \$ 2])),'Vector[row]'(2, algebraic)},               p1::{satisfies(s -> type(s, [algebraic \$ 2])),'Vector[row]'(2, algebraic)},               clr::`string`:= GeomClr,               prnt::`string`:=Prntmsg)            option overload;            uses LinearAlgebra;            #print(clr,p0,p1);            if clr="b" or clr="B" or clr="blue" or clr="Blue" then               if prnt="y" then                 print("Spread 2 [x,y] Points/Vectors wrt origin Blue");               end if;                return 1 - BilinearForm(p0, p1, conjugate = false)^2/(BilinearForm(p0, p0, conjugate = false)*BilinearForm(p1, p1, conjugate = false));            elif clr="g" or clr="G" or clr="green" or clr="Green" then               if prnt="y" then                print( "Spread 2 [x,y] Points/Vectors wrt origin Green");               end if;                return -1/4*(p0[1]*p1[2] - p0[2]*p1[1])^2/(p0[1]*p0[2]*p1[1]*p1[2]);            elif clr="r" or clr="R" or clr="red" or clr="Red" then               if prnt="y" then                print( "Spread 2 [x,y] Points/Vectors wrt origin Red");                end if;                return -(p0[1]*p1[2] - p0[2]*p1[1])^2/((p0[1]^2 - p0[2]^2)*(p1[1]^2 - p1[2]^2));           end if;           end proc:
 (2)
 (3)
 (4)
 > 1/sb+1/sr+1/sg
 (5)
 (6)
 >

## How do I plot given a function?...

For example, given plot f(x)= x^5+x. plot the function given by g(x)= f(x-2)+3

Also, when plotting my graphs they look different than other graphing software.

## on solution to ode using Laplace transform when RH...

I was trying this ode with Maple

Do you agree this solution is not correct by Maple?

```restart;

ode:=diff(y(t),t)+y(t)=Dirac(t);
ic:=y(0)=1;
sol:=dsolve([ode,ic],y(t),method='laplace');

```

It gives  y(t) = 2*exp(-t)

But from the discussion in the above link we see this is wrong solution. Maple also does not verify it:

`odetest(sol,[ode,y(0)=1])`

[-Dirac(t), -1]

Would this be considered a bug I should report or not? Note this result is only when using Laplace method. The default method gives better solution.

```ode:=diff(y(t),t)+y(t)=Dirac(t);
ic:=y(0)=1;
sol:=dsolve([ode,ic],y(t));
odetest(sol,[ode,y(0)=1])
```

Maple 2023.2.1

## Overload Procedures with default values and mixed ...

The overloaded  procedure here test returns based on 2 lists or 3 lists entered. The two list has a mixed input type with a default value. The default value of "a" can cause a problem if an explicit value in not entered for "a" in foo1. I not sure is the mixed input type is adding to the problem.
By changing the order of the procedures the problem is avoidable here. But this just a simple example. When there are 6 or so procedures it can be very difficult to select a correct ordering.

Is there a way around this, apart from don't have default values?

I could experiment with changing the input order in each proc but that would break up some logical input sequences on me.

 > restart
 >
 > foo:=overload([                         proc(P1::list,P2::list,a::algebraic:=4,\$)                          option overload;                          print("2 lists");                           end proc,                        proc(P1::list,P2::list,P3::list,\$)                          option overload;                          print("3 lists");                           end proc                        ]);
 (1)
 > foo([1,2],[3,4])
 (2)
 > foo([1,2],[3,4],[4,7])
 (3)
 >
 >
 >
 > foo1:=overload([                                                 proc(P1::list,P2::list,P3::list,\$)                          option overload;                          print("3 lists");                           end proc,                         proc(P1::list,P2::list,a::algebraic:=4,\$)                          option overload;                          print("2 lists");                           end proc                        ]);
 (4)
 > foo1([1,2],[3,4]); #incorrect output
 (5)
 > foo1([1,2],[3,4],4)
 (6)
 > foo1([1,2],[3,4],[4,7])
 (7)
 >

## How do i remove the vertical line when plotting Im...

I am trying to plot the following.

it consist of a line and a circle.

if tried doing it as so:

f := x -> piecewise(0 <= x and x <= 1.588125352, (-1)*0.39*x^2 + 1.459*x - y, 1.588125352 <= x and x < 4, (x - 1.81)^2 + (y - 0.42)^2 + (-1)*0.94^2);

implicitplot(f(x), x = 0 .. 3, y = 0 .. 1.5, scaling = constrained);

every time i get this ugly line in the point where the funktion switches and i can't seem to remove it.

I've tried discont = true, but it doesn't seem to work on implicitplots.

## Why is – not rendered in an exponent?...

It is &ndash; that is not rendered.

Maple 2023

For comparision Maple 2022.

Can someone reproduce this? Anything I can do about it (some settings maybe)?

Both session directly after restart of Maple.

## How can I create a well-formatted PDF when using t...

Hello

I need to share some results with a colleague who is not a user of Maple, and a way to do this is by using the Tabulate (plain command and not from DocumentTools) function to format them. In the worksheet, the output looks good, but when I try to print it or save it as a PDF, only a few lines are printed. It appears that Maple is not able to break the tables into multiple pages for printing.

The output is a table with 77 rows and 30 columns.

I welcome alternative solutions to the problem of displaying the results.

Many thanks

## what is the easiest way to find a row in matrix...

This is probably a dummy question. I have a matrix (3 columns, 4 rows). I would like to extract the rows in which the value in the third column matches "2". As long as one has a matrix of 2 columns, this can be easily done by using the Lookup command but it does not allow you to give the row values of multiple columns. Is there another command that allows you to do that?

Thank you in advance for your help.

FindRowInMatrix.mw

 3 4 5 6 7 8 9 Last Page 5 of 29
﻿