-----Original Message-----
From: Barton Willis <willisb@...>
To: velten <kai.velten@...>, andre maute <andre.maute@...>
Subject: RE: [Maxima-discuss] Can Maxima prove Im(x)=0?
Date: Sat, 29 Mar 2014 12:04:59 +0000

> 1. Can I somehow solve equations with assumptions similar to:
> assume(12*Vmax-%pi*Lv^3<0);
> erg:solve((Lv-bv)*%pi/4*bv^2+%pi/12*bv^3=Vmax,bv);

Solve does not exclude solutions that do not satisfy the assumptions in the fact database.
You could try using sublist on the solutions to find the solution that satisfies certain inequalities.

>2. Can Maxima prove imagpart(x)=0, if x is complex, depends on
>parameters a,b,c..., and the parameter space is restricted similar to
>the cubic example below.

I'd say Maxima isn't capable of proving anything. You can certainly define predicates such as

real_p(e) := is(equal(imagpart(e),0))

For simple expressions, this function might work, but in general, I'd guess that real_p will not
work as well as you would like it to work.

--Barton

Example. Solve solve((Lv-bv)*%pi/4*bv^2+%pi/12*bv^3=Vmax,bv)

(%i1) assume(12*Vmax-%pi*Lv^3<0,Vmax>0,Lv>0)\$
(%o2) "C:/Users/Aleksas/maxima/odes.mac"
(%i3) solvet((Lv-bv)*%pi/4*bv^2+%pi/12*bv^3=Vmax,bv)\$
spr:expand(%)\$
(%i5) tr:expand(atan2((sqrt(3)*sqrt(%pi*Lv^3-12*Vmax)*sqrt(Vmax))/(2*%pi),-(24*Vmax-%pi*Lv^3)/(8*%pi)))\$
(%i6) ratsubst (omega, %, spr);
(%o6) [bv=(2*Lv*cos(omega/3)+Lv)/2,bv=(2*Lv*cos((omega-2*%pi)/3)+Lv)/2,bv=(2*Lv*cos((omega+2*%pi)/3)+Lv)/2]

Solution:
(%i7) sol:expand(%);
(%o7) [bv=Lv*cos(omega/3)+Lv/2,bv=Lv*cos(omega/3-(2*%pi)/3)+Lv/2,bv=Lv*cos(omega/3+(2*%pi)/3)+Lv/2]
where
(%i8) omega=tr;
(%o8) omega=atan2((sqrt(3)*sqrt(%pi*Lv^3-12*Vmax)*sqrt(Vmax))/(2*%pi),Lv^3/8-(3*Vmax)/%pi)

best

Aleksas D