home *** CD-ROM | disk | FTP | other *** search
- 13.18 Learning from Users
-
- One of the most important feature of SymbMath is its ability
- to deduce and expand its knowledge. If the user provides it with the
- necessary facts, SymbMath can solve many problems that it was unable
- to solve before. The followings are several ways in which SymbMath is
- able to learn from the user.
-
-
- 13.8.1 Learning indefinite and definite integrals from a derivative
-
- If the user provides the derivative of a known or unknown
- function, SymbMath can deduce the indefinite and definite integrals of
- that function. Usually finding derivative of the function are much
- easier than finding integral of that function.
-
-
- Example 13.18.1.1 :
-
- If we know a derivative of an function f(x) (f(x) is a known or
- unknown function), SymbMath can learn the integrals of that function
- from its derivative.
- First check SymbMath wether or not it had already known
- indefinite and definite integrals of an unknown function f(x).
-
- In the input window type :
-
- inte(f(x), x)
- inte(f(x), x, 1, 2)
- end
-
- In the output window you'll see :
-
- inte(f(x), x)
- inte(f(x), x, 1, 2)
- end
-
- As the output windows displayed only what was typed in the input
- windows without any computed results, imply that SymbMath has no
- knowlege of the indefinite and definite integrals of the functions
- in question. Now teach SymbMath the derivative of f(x) on the first
- line, and then run the program again.
-
- Input:
- d(f(x_), x_) = exp(x)/x
- inte(f(x), x)
- inte(f(x), x, 1, 2)
- end
- Output:
- d(f(x_), x_) = e^x/x
- constant + x*f(x) - e^x
- e - f(1) + 2*f(2) - e^2
-
- As demonstrated, the user only supplied the derivative of the function
- and in exchange SymbMath logically deduced its integral.
-
- Example 13.18.1.2 :
-
- Integrate asin(x). First check if the integral or the derivative
- of asin(x) had already been stored in the memory of SymbMath.
-
- Input window :
- d(asin(x), x)
- inte(asin(x), x)
- end
- Output window :
- d(asin(x), x)
- inte(asin(x), x)
-
- As the output window displayed no results, provide the derivative of the
- function on the first line, and run the program.
-
- Input window :
- d(asin(x_), x_) = 1/sqrt(1-x^2)
- inte(asin(x), x)
- end
- Output window :
- d(asin(x_), x_) = 1/sqrt(1-x^2)
- constant + x*asin(x) +1/sqrt(1 - x^2)
-
-
- 13.18.2 Learning complicated indefinite integrals from a simple
- indefinite integral
-
- The user supplies a simple indefinite integral, and in return, SymbMath
- will perform the related complicated integrals.
-
- Example 13.8.2.1 :
-
- Check whether SymbMath already knowns the following integrals or not.
-
- Input window :
- inte(tan(x)^2, x)
- inte((2*tan(x)^2+x), x)
- inte(inte(tan(x)^2+y), x), y)
- end
- Output window :
- inte(tan(x)^2, x)
- inte((2*tan(x)^2+x), x)
- inte(inte(tan(x)^2+y), x), y)
-
- Supply like in the previous examples the following in information
- integral of tan (x) is tan (x) - x; then ask the indefinite integral
- of 2*tan(x)^2+x, and a double indefinite integral of 2*tan (x)^2 + x,
- and a double indefinite integral of respect to both x and y. Change
- the first line, and then the program again.
-
- Input window :
- inte(tan(x)^2, x) = tan(x) - x
- inte((2*tan(x)^2+x), x)
- inte(inte(tan(x)^2+y), x), y)
- end
- Output window :
- inte(tan(x)^2, x) = tan(x) - x
- 2 (tan(x) - x) + 1/2*x^2
- tan(x)*y - x*y + x*y^2
-
- The User can also ask SymbMath to perform the following
- integrals: inte(inte(tan(x)^2+y^2), x), y),
- inte(inte(tan(x)^2*y), x), y), inte(x*tan(x)^2, x),
- triple integral of tan(x)^2-y+z, or others.
-
-
- 13.18.3 Learning definite integral from indefinite integral
-
- The user continues to ask indefinite integral.
-
- Input window :
- inte(inte(tan(x)^2+y, x from 0 to 1), y from 0 to 2)
- end
- Output:
- 2 tan(1)
-
-
- 13.18.4 Learning complicated derivative from simple derivative
-
- SymbMath can learn complicated derivatives from a simple derivative
- even thought the function to be differentiated is any function, not
- standard function.
-
- Example 13.8.4.1 :
-
- Differentiate ci(x^2)^6, where ci(x) is a cosine integral function
- instead of a standard function.
-
- Input:
- d(ci(x^2)^6, x)
- end
- Output:
- 12*x*ci(x^2)^5*d(ci(x^2), x^2)
-
- It output only the part derivative. d(ci(x^2), x^2) in the output
- suggest that the user should teach SymbMath d(ci(x_), x_) = cos(x)/x,
- do so and run it again.
-
- Input:
- d(ci(x_), x_) = cos(x)/x
- d(ci(x^2)^6, x)
- end
- Output:
- d(ci(x_), x_) = cos(x)/x
- 12*ci(x^2)^5*cos(x)
-
- This time we get complete derivative.
-
- 13.18.5 Learning integration from algebra
-
- If the user shows SymbMath algebra, SymbMath can learn integrals.
-
-
- Example 13.8.5.1 :
-
- Input sin(x)^2=1/2-1/2*cos(2*x), then ask for the integral of sin(x)^2.
-
- Input window :
- sin(x)^2=1/2-1/2*cos(2*x)
- inte(sin(x)^2, x)
- end
- Output window :
- sin(x)^2 = 1/2 - 1/2*cos(2*x)
- 1/2*x - 1/4*sin(2*x)
-
- SymbMath is very flexible, It learned to solve these problems, even though
- the types of problems are different, e.g. learning integrals from
- derivatives or algebra.
-
-
- 13.18.6 Learning complicated algebra from simple algebra
-
- SymbMath has the ability to learn complicated algebra from simple algebra.
-
- Example F1 :
-
- Transform sin(x)/cos(x) into tan(x) in an expression.
-
- input window:
-
- sin(x)/cos(x) = tan(x)
- x+sin(x)/cos(x)+a
-
- Output window :
- sin(x)/cos(x) = tan(x)
- a + x + tan(x)
-
-
- The difference between learning and programming is as follows :
- the learning process of SymbMath is very similar to the way human
- beings learn, and that is accomplished by knowing certain rule that
- can be applied to several problems. Programming is diffrent in the way
- that the programmer have to accomplish many tasks before he can begin
- to solve a problem. First, the programmer defines many subroutines for
- the individual integrands (e.g. tan(x)^2, tan(x)^2+y^2, 2*tan(x)^2+x,
- x*tan(x)^2, etc.), and for individual integrals (e.g. the indefinite
- integral, definite integral, the indefinite double integrals,
- indefinite triple integrals, definite double integrals, definite
- triple integrals, etc.), second, write many lines of program for the
- individual subroutines, (i.e. to tell the computer how to calculate
- these integrals), third, load these subroutines, finally, call these
- subroutines. That is precisely what SymbMath do not ask the user to do.
- In one word, programming means that programmers must
- provide step-by-step procedures telling the computer how to solve
- each problems. By contrast, learning means that users need only supply
- the necessary facts, SymbMath will determine how to go about
- solutions.
- If the learning is saved into the initial file init.sm, the
- learning will become the knowledge of the SymbMath system, users need
- not to teach SymbMath again when users run SymbMath next time.
-