## 7260 Reputation

10 years, 205 days

## MaplePrimes Activity

### These are answers submitted by nm

 > restart;
 > ode:=diff(y(x),x\$2)+ 4*diff(y(x),x) + 4*y(x) = sin(x); ic:=y(0) = 1 , D(y)(0)=0; sol_analytic:=dsolve([ode,ic]); sol_numeric:=dsolve([ode,ic], numeric, method = gear,output=listprocedure): sol_numeric := eval(y(x),sol_numeric):

 > p1:=plot(rhs(sol_analytic),x=0..10,title="analytic",gridlines,color=blue):
 > p2:=plot(sol_numeric(x),x=0..10,title="numerical",gridlines,color=red):
 > [p1,p2]

 >

feel free to make improvements as needed

```restart;
y := x-> a*x^3 + b*x^2 + c*x + d:
pts:=[[-1,-4],[1,0],[2,0],[3,-4]]:
eqs:=[seq(y(pts[i,1])=pts[i,2],i=1..numelems(pts))];
sol:=solve(eqs,{a,b,c,d}):
equation_of_curve:=eval(y(x),sol);
plots:-display(plot(equation_of_curve,x=-4..4,gridlines),plots:-pointplot(pts,color=blue,symbol=solidcircle,symbolsize=20))
```

pick say x=-1, then your function becomes   (-1)^(1/3). But -1=exp(I*Pi). Hence (-1)^(1/3) is the same as exp(I*Pi/3). Using Euler's formula, this is the same as  cos(Pi/3)+I*sin(Pi/3) = 0.5 + 0.8660254037*I   which is complex.

That is why Maple does not plot for for negative x.

may ways to do this. One is to use zip. But they have to be lists not sets. You can convert them

```s1:=[a, b, c];
s2:=[a, b, d];
```

2*a + 2*b + c + d

Or use shorthand

```add(zip(`+`,s1,s2))
```

2*a + 2*b + c + d

Under Options->General. Uncheck it

try expanding it first so both sides have same structure?    evalb(a-a*b=expand(a*(1-b)))  now gives true.

Help says

The evalb command does not simplify expressions. It may return false for a relation that is true. In such a case, apply a simplification to the relation before using evalb.

In this case simplify() did not make it give true.

or you could just use is(a-a*b=a*(1-b)) gives true without the need to expand or simplify.

You can try adding some assumptions? for example

 > expr:=sqrt(y^2/(x^2+y^2))*sqrt(x^2+y^2)

 > simplify(expr)

 > simplify(expr) assuming x::real,y::real

 > simplify(expr) assuming x::real,y::real,y>0

 >

This works for me.

```restart;
f := 9*x^3 - 7*x^2*y + 8*x*y^2 - 6*y^3 + 3*x^2 - 3*x*y + 4*y^2 - 3*x + 9*y - 7;
fx:=diff(f,x);
fy:= diff(f,y);

ctpts:= solve({fx=0,fy=0},{x,y});
evalf(allvalues(ctpts))```

{x = 0.04295586238 + 0.2689937615*I, y = 0.9924517251 + 0.1221355623*I}, {x = -0.1196978953, y = -0.5678259706}, {x = -0.2777747003, y = -0.6265224321}, {x = 0.04295586238 - 0.2689937615*I, y = 0.9924517251 - 0.1221355623*I}

I do not know how to add rules to the build in simplify command in Maple (It is possible to do this in Mathematica easily). May there is a way to do it in Maple in order to teach it a new "rule".  The standard simplify(expr,ln) did not do it.

For now you can do

```expr:=(ln(-z*I + b) - ln(z*I + b));
I*simplify(log(exp(expr)))```

I calculated 6 critical points :how to show them in the plot?

```restart;
f:=(x,y)->x^4-3*x^2-2*y^3+3*y+1/2*x*y;
cp:=  solve( {diff(f(x,y),x)=0,diff(f(x,y),y)=0}, {x,y});
cp:=  evalf(allvalues(cp));
pts:= map(X->eval([x,y],X),[cp]);
pts:=map(X->[op(X),f(X[1],X[2])],pts);
plots:-display([plot3d(f),plots:-pointplot3d(pts,'color'='red','symbol'='solidcircle','symbolsize'=15)])
```

Using the view point used by others, we get

```plots:-display([plot3d(f(x,y),x=-2..2,y=-2..2, view=-6..6),plots:-pointplot3d(pts,'color'='red','symbol'='solidcircle','symbolsize'=15)])
```

How to make table out of this list.CriticalPoints. for easy reading.?

`<<'x'|'y'|'z'>,Matrix(pts)>`

## collect...

would it not be better to just use collect? Then the result is automatically sorted by L[n], but it is also collected, which is easier to read also.

```result:= expand(((673*L[13] - 485*L[14] - 176*L[15])*h^2 - 90*(L[13] - (13*L[14])/15 - (2*L[14])/15)*x*h)/(12*h^3));
collect(result,indets(result,'indexed'))```

Alternatively, a way to factorize  into  could do the trick.

```restart;
expr:=a*x+6*x^2-10;
tmp:=select(has,expr,x);
factor(tmp)+expr-tmp;
```

I am not sure if is possible to write Q3 = gamma*Q1 + (1-gamma)*Q2

Maple says it is not possible. You can try simplify with side relations

```restart;
Q3 := 1/(v)*(    v*pi-  (   (1-alpha*gamma) *pi * r[0]  - (1-pi)*B*alpha  + (gamma*pi + (1-pi)*h)    )   );
eqs:={ 1/v *(  v*pi    -  (   h - (1-pi)*B   )      )=Q2,1/v*(   v*pi     - (   pi*r[0]+ (1-pi)*h  )   )=Q1};
simplify(Q3,eqs);```

I have not used this command before myself in Maple, but may this is what you want

```plots:-conformal(exp(2*z), z=0..1+I);
```