00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <stdio.h>
00023 #include "mathexpr_c.h"
00024
00025
00026
00027
00028
00029 int main()
00030 {
00031
00032
00033 double_complex x;
00034
00035 CVar xvar ( "x" , &x );
00036
00037
00038 char s[500]="";
00039 printf("Enter a formula depending on the variable x:\n");
00040 gets(s);
00041
00042
00043
00044
00045 CVar* vararray[1]; vararray[0]=&xvar;
00046 COperation op ( s, 1, vararray );
00047
00048
00049 x=3;
00050
00051 printf("%s = %s for x=3\n\n", op.Expr(), PrettyPrint(op.Val()) );
00052
00053
00054 CFunction f (op, &xvar); f.SetName("f");
00055
00056
00057 double_complex y;
00058 CVar yvar ( "y" , &y );
00059 CVar* vararray2[2];
00060 vararray2[0]=&xvar; vararray2[1]=&yvar;
00061
00062
00063 printf("Enter a formula using x, y and the function f: x |-> %s that you just entered :\n", op.Expr());
00064 gets(s);
00065 CFunction* funcarray[1]; funcarray[0]=&f;
00066 COperation op2 ( (char*)s , 2 , vararray2 , 1, funcarray );
00067
00068
00069 y=5;
00070 printf("Value for x=3, y=5 : %s\n", PrettyPrint(op2.Val()) );
00071
00072
00073 CFunction g(op2, 2, vararray2); g.SetName("g");
00074
00075
00076 double_complex z,t;
00077 CVar zvar("z", &z), tvar("t", &t);
00078 COperation op3,zop,top;
00079 zop=zvar; top=tvar;
00080
00081 op3=g( (zop+top, top^2) );
00082
00083
00084 z=5;t=7;
00085 printf("\nLet g be the function g : x,y |-> %s\n", op2.Expr());
00086 printf("Value of %s for z=5,t=7:\n %s\n", op3.Expr(), PrettyPrint(op3.Val()) );
00087
00088 COperation dopdt=op3.Diff(tvar);
00089 printf("Value of d/dt (g(z+t,t^2)) = %s for z=5,t=7:\n %s\n", dopdt.Expr(), PrettyPrint(dopdt.Val()) );
00090 COperation dopdtbar=op3.DiffConj(tvar);
00091 printf("Value of d/dtbar (g(z+t,t^2)) = %s for z=5,t=7:\n %s\n", dopdtbar.Expr(), PrettyPrint(dopdtbar.Val()) );
00092
00093 return 0;
00094 }