Saturday, December 14, 2013

Symbolic Computation

      

      I have always been amazed by the development of calculators over time. Couple decades ago, a calculator could only solve simple numerical computation such as addition, subtraction, multiplication and division. Thanks to the fast growth of Computer Science, calculators have been improved a lot so that they can solve complex mathematical expressions. However, the explosion of mobile devices nowadays makes many people want to design a math library or system on mobile devices in order to replace regular calculators. Such a system has to be able to do symbolic computation. 


      What is symbolic computation? Symbolic computation allows us to express mathematical problems in symbols and solve them using variables, formulas and functions. Values do not need to be assigned to variables until we want to. Symbolic computations give us more accurate results since they reduce the inaccuracy of doing mathematical problems by hands.  
       
      
      A symbolic computational system can do a lot of things including numerical computing, derivatives, integrals, and many other complex expressions. There are two most popular systems which are Maple and Wolfram. They both have very complicated graphical and computational features, which are implemented very well to handle complex expressions that cannot be solved by humans.

      In order to build such systems on mobile devices, there are several considerations to be considered.

  1.  Space: consider a simple expression like (a + 5) ^ 10. It expands to 3 terms, however (a + 5) ^ 200000 can expand up to 2000 terms. This might take some space (probably more than 1 Mb). Therefore, simple things get bigger very fast when you begin to compute with them. 
  2.  Time: The above polynomial looks simple, but if we want to take the derivative or integrate it over some interval might take quite long, so how long a mobile user would want to wait for an answer?
  3. Format: Mobile users always want simple inputs but beautiful outputs.
  4. Built-in library: To make this system portable, we need to have a library.
  5. Extensibility: To make the system bigger and more useful, users can add more functionality to it. 

      In conclusion, symbolic computing/programming plays an important role in solving a lot of mathematical problems that were created many centuries ago. It also builds a much stronger platform for a new kind of computing.  

3 comments:

  1. Hello! The construction of graphing calculators has never reached my attention until now. For every math class I have taken, I always use Wolfram Alpha but never thought about how it worked. The algorithm looks quite complicated and I am fascinated how to deals with any input. I feel that symbolic computation will gradually remove our needs to learn the fundamentals of mathematics. Why learn algebra when you can ask Wolfram to solve your problem for you? In any case, thanks for sharing!

    ReplyDelete
  2. Graphing calculators are amazing devices. They can handle so many different types of equations and graph the as well. You brought up very interesting points about the space and time required for large calculations. You mentioned a couple of the sites (Maple and Wolfram Alpha) which I've used to help solve equations and graph equations multiple times. It's awesome that Wolfram Alpha gives out different formats and solutions to equations as well. As for removing our needs to learn fundamental mathematics, I think that this opens up more time to focus on more difficult questions.

    ReplyDelete
  3. Hi Duc,
    What an informative post you have! Complex computation are involved in many fields of Computer Science. Thus, if there is no such tool like Wolfarm Alpha, Maple, or Mathlab, the work’s process is slowed down a lot. Besides, As you mentioned in your post, graphing calculators are great. I know it as I’m using one. And due to its limitation in memory, I can only store around 20 self-definition functions. However, mine is powerful enough, and it help me a lot in many complex computation in the past. Overall, your post is great and I very enjoy reading it.

    ReplyDelete