Introduction
   InetCAS
     InetMaple
     InetReduce
   InetApplication
     InetMatlab
   Mathematics
     Combinatorics
       - numbpart
       - multipart
       - arithinva
       - rbf

1. Purpose of reduce@trinitas.mju.ac.kr     [ ÇÑ±Û ¼³¸í ]
Automatic execution of sender-provided reduce commands between 
     input:      and      end input:   
and return of the results to the e-mail sender.  

2. Introduction
A Computer Algebra System, Reduce is available via our InetCompu Service.  In particular, this will help a lot those having difficulties in basic symbolic and numerical computations such as in calculus, linear algebra, and engineering mathematics, etc. 

3. Notes
3-1. No reduce commands requiring graphics treatments, for instances, plot, etc, will produce highly qualified visual results.
3-2. For a trouble-free handling of your e-mail, we recommend you to use MicroSoft Outlook Express, New mail > Alt+O > Alt+X (with No Encryption),  to send out an e-mail to reduce@trinitas.mju.ac.kr   .  Otherwise, please read subsections 3-3 and 3-4 below.
3-3. (Important)
Instead of using the special characters "<<" and ">>" in your programming, for instance, in reduce commands,  it is strongly recommended to use the words "begin" and "end" for them, respectively, as is shown in the example below, in order to avoid possible mistreatment of these special characters by your web-based mail server you are using.  This could be caused by severe filteration of the main body of your e-mail before it leaves your web-based mail server. The same recommendation applies to: "leq" = "<=", "geq" = ">=", "eq" = "=", "greaterp" = ">", and "lessp" = "<"   . 
3-4. (Warning)
Even if you do not use these special characters, some free web-mail servers you may use sometimes insert commercial ads somewhere in the main body of your e-mail and then this garbage-containing input will certainly cause a trouble to our InetCompu service. For this reason, we strongly recommend you to use MicroSoft Outlook Express, New mail > Alt+O > Alt+X (with No Encryption), to send out your e-mail to us.  

4. How to do: Send an e-mail with plain text style (for instance, in the case of MicroSoft Outlook Express, New mail > Alt+O > Alt+X (with No Encryption)) to reduce@trinitas.mju.ac.kr  whose main body should consist of, for example, something like this:

input:
off echo$
off nat$
write "comment The following program computes minimum and
maximum of a polynomial function f in 3 variables under 
a polynomial constraint g=0. It is a prototype example of
Lagrange's method of multipliers, lamda";

% inputs:
     f:=x^3+2*x*y*z-z^2$
   g:=x^2+y^2+z^2-1$
% If you choose inputs different from the above ones,
% then you may have to modify the following lines.
    f1:=df(f,x)-lamda*df(g,x)$
     f2:=df(f,y)-lamda*df(g,y)$
     f3:=df(f,z)-lamda*df(g,z)$
    result:=solve({f1,f2,f3,g},{lamda,x,y,z})$
%% You don't have to modify the rest of lines.
write "critical points := ",result;
write "comment Now mimimum and maximum of f under the constraint
g=0 are determined as:";
     minimum:=sub(part(result,1),f)$
     ctps_min:=part(result,1)cons{}$
     maximum:=sub(part(result,1),f)$
     ctps_max:=part(result,1)cons{}$
j:=2$
while j leq length(result) do
     begin a:=sub(part(result,j),f)$
          if a geq maximum then
               begin if a greaterp maximum then
                         begin maximum:=a$
                                  ctps_max:=part(result,j)cons{}$
                         end
                    else if a leq minimum then
                         begin
                                  ctps_min:=part(result,j).ctps_min$
                         end
                    else
                         begin
                                  ctps_max:=part(result,j).ctps_max$
                         end$
               end
          else if a leq minimum then
               begin if a lessp minimum then
                         begin minimum:=a$
                                  ctps_min:=part(result,j)cons{}$
                         end
                   else
                        begin
                                  ctps_min:=part(result,j).ctps_min$
                        end$
               end
          else begin  end$
j:=j+1$
end$
write "The maximum value of f under g=0 is, ",maximum,", and it occurs at the critical points ",ctps_max;
write "The minimum value of f under g=0 is, ",minimum,", and it occurs at the critical points ",ctps_min;
write "comment Check: Here are the values of f at all the computed critical points";
j:=1$
while j leq length(result) do
     begin a:=sub(part(result,j),f)$
          write "The value of f at the critical point ",part(result,j)," is: ", a;
          j:=j+1$
     end$
end input:

which should tell us maximum and minimum of the function f under the constraint g=0 at the corresponding critical points, by Lagrange's method of multiplers.

Then upon the arrival of such an e-mail, the commands between input: and end input: are executed automatically and the results are sent back to the e-mail sender immediately. The sender will also get the timex report on execution time by our Server at the end of the returning e-mail.

[Reminder] When the requested job is computationally not very complicated, it should be quite the case that you will receive the result within a few Minutes.  But, our response consisting of the computed results can not be delivered to the sender properly, if either there is a spelling mistake in sender's e-mail address or sender's mail box is already filled with too many of other e-mails. Thus, if you do not receive the results although you have waited for some time, then please check your mail account to correct the above trouble-causing problems.  After that, try again according to the procedure described in Section 4 above.

5. An Example
If you send an e-mail to reduce@trinitas.mju.ac.kr whose main body consists of those lines in between     input:     and     end input:     , where "input:" and "end input" should be included, in Section 4 above, then you will receive the following output:

Comment The followings are the requested inputs:

off echo$
off nat$
write "comment The following program computes minimum and
maximum of a polynomial function f in 3 variables under
a polynomial constraint g=0. It is a prototype example of
Lagrange's method of multipliers, lamda";

% inputs:
     f:=x^3+2*x*y*z-z^2$
   g:=x^2+y^2+z^2-1$
% If you choose inputs different from the above ones,
% then you may have to modify the following lines.
    f1:=df(f,x)-lamda*df(g,x)$
     f2:=df(f,y)-lamda*df(g,y)$
     f3:=df(f,z)-lamda*df(g,z)$
    result:=solve({f1,f2,f3,g},{lamda,x,y,z})$
%% You don't have to modify the rest of lines.
write "critical points := ",result;
write "comment Now mimimum and maximum of f under the constraint
g=0 are determined as:";
     minimum:=sub(part(result,1),f)$
     ctps_min:=part(result,1)cons{}$
     maximum:=sub(part(result,1),f)$
     ctps_max:=part(result,1)cons{}$
j:=2$
while j leq length(result) do
     begin a:=sub(part(result,j),f)$
          if a geq maximum then
               begin if a greaterp maximum then
                         begin maximum:=a$
                                  ctps_max:=part(result,j)cons{}$
                         end
                    else if a leq minimum then
                         begin
                                  ctps_min:=part(result,j).ctps_min$
                         end
                    else
                         begin
                                  ctps_max:=part(result,j).ctps_max$
                         end$
               end
          else if a leq minimum then
               begin if a lessp minimum then
                         begin minimum:=a$
                                  ctps_min:=part(result,j)cons{}$
                         end
                   else
                        begin
                                  ctps_min:=part(result,j).ctps_min$
                        end$
               end
          else begin  end$
j:=j+1$
end$
write "The maximum value of f under g=0 is, ",maximum,", and it occurs at the critical points ",ctps_max;
write "The minimum value of f under g=0 is, ",minimum,", and it occurs at the critical points ",ctps_min;
write "comment Check: Here are the values of f at all the computed critical points";
j:=1$
while j leq length(result) do
     begin a:=sub(part(result,j),f)$
          write "The value of f at the critical point ",part(result,j)," is: ", a;
          j:=j+1$
     end$ 

                                                                                                             
Comment Here are the results:$

comment The following program computes minimum and
maximum of a polynomial function f in 3 variables under
a polynomial constraint g=0. It is a prototype example of
Lagrange's method of multipliers, lamda$

critical points := {{x=( - 2)/3,z=2/3,y=1/3,lamda=( - 4)/3},
{x=( - 2)/3,z=( - 2)/3,y=( - 1)/3,lamda=( - 4)/3},
{x=( - 3)/8,
z=sqrt(11)/(8*sqrt(2)),
y=( - 3*sqrt(11))/(8*sqrt(2)),
lamda=1/8},
{x=( - 3)/8,
z=( - sqrt(11))/(8*sqrt(2)),
y=(3*sqrt(11))/(8*sqrt(2)),
lamda=1/8},
{x=1,z=0,y=0,lamda=3/2},
{x=0,z=1,y=0,lamda=-1},
{x=0,z=0,y=1,lamda=0},
{x=0,z=0,y=-1,lamda=0},
{x=0,z=-1,y=0,lamda=-1},
{x=-1,z=0,y=0,lamda=( - 3)/2}}$

comment Now mimimum and maximum of f under the constraint
g=0 are determined as:$

The maximum value of f under g=0 is, 1, and it occurs at the critical points {{x
=1,z=0,y=0,lamda=3/2}}$

The minimum value of f under g=0 is, ( - 28)/27
, and it occurs at the critical points {{x=( - 2)/3,z=( - 2)/3,y=( - 1)/3,lamda=
( - 4)/3},
{x=( - 2)/3,z=2/3,y=1/3,lamda=( - 4)/3}}$

comment Check: Here are the values of f at all the computed critical points$

The value of f at the critical point {x=( - 2)/3,z=2/3,y=1/3,lamda=( - 4)/3}
 is: ( - 28)/27$

The value of f at the critical point {x=( - 2)/3,z=( - 2)/3,y=( - 1)/3,lamda=( -
 4)/3} is: ( - 28)/27$

The value of f at the critical point {x=( - 3)/8,
z=sqrt(11)/(8*sqrt(2)),
y=( - 3*sqrt(11))/(8*sqrt(2)),
lamda=1/8} is: 7/128$

The value of f at the critical point {x=( - 3)/8,
z=( - sqrt(11))/(8*sqrt(2)),
y=(3*sqrt(11))/(8*sqrt(2)),
lamda=1/8} is: 7/128$

The value of f at the critical point {x=1,z=0,y=0,lamda=3/2} is: 1$

The value of f at the critical point {x=0,z=1,y=0,lamda=-1} is: -1$

The value of f at the critical point {x=0,z=0,y=1,lamda=0} is: 0$

The value of f at the critical point {x=0,z=0,y=-1,lamda=0} is: 0$

The value of f at the critical point {x=0,z=-1,y=0,lamda=-1} is: -1$

The value of f at the critical point {x=-1,z=0,y=0,lamda=( - 3)/2} is: -1$
 
comment The following is the timex report of the system in seconds:
real        1.70
user        0.40
sys         0.13
$

Remark. Unfortunately, no help on reduce commands are available from reduce@trinitas.mju.ac.kr   . One may refer to intro2reduce.html for user's help.

 
  Mail to Professor Sun Tae Soh Copyrights trinitas.mju.ac.kr All Rights Reserved.