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.
|