Mathjax

jsxgraph

Tuesday, November 5, 2013

Factorial Fun - Page

I combined the post about factorial to a single page that can be reached from the link at the right of the blog main page. Click "Factorial Fun" under Main at right.

Tuesday, October 1, 2013

Numbers in Computers

I uploaded a revised presentation on computer math at http://www.slideshare.net/PDE1D.  This was originally targeted at advanced middle school students.  It includes where digital numbers are used, binary numbers (including binary bean counting project and pick a number trick).     

Wednesday, September 25, 2013

Linux DVD Production with kdenlive

I have finally finished the DVD for my Daughters wedding. This post is about experiences with this DVD creation. The primary tools were kdenlive and Imagination.

Monday, September 9, 2013

Linear Interpolation


Interpolation involves finding an estimate for a function value between known values of the function.  Lets say someone has recorded the temperature every hour of the day and you need to know the temperature at 4:30 PM.  A reasonable approach would be to look up the temperature at 4:00 and 5:00 and take the average.  This is interpolation.  However, interpolation can be significantly improved but gets more complicated.  Interpolation is the backbone behind almost all numerical methods.

Wednesday, July 31, 2013

Factorial Summary

Time to summarize the factorial study and move on to other fun topics.

Computer representation of numbers

The key issue with large numbers like factorials, is how they are represented on the computer.  For performing mathematical operations the computer hardware has fixed size numbers.  For integer number types, this is related to the size of registers and number of wires connecting devices.  Each bit of a number is held in a flip-flop.  A flip-flop is an electronic device with two stable states, one representing a 0 and the other a 1.

Monday, July 22, 2013

X11 factorial code with Xft and GMP

/*
This is the factorial code using X11 with Xft and GMP.  Xft provides anti-aliased fonts and can be toggled on or off with an 'a' or 'x' keys.  The results from the Gnu Multi-Precision Library can have the precision reduced by bit masking the results to 8, 4, 2 or 1 Byte by pressing the 'p' key.  The results can also be presented in binary or hexadecimal by pressing the 'b' key.  The number digits are entered with number keys.  The 'delete' or 'backspace' keys remove the last digit.  The 'enter' or 'return' keys clear the number.

The code listing is color highlighted -
  gray - is comments, ignored by the compiler
  green - pre-processor directives
  blue - native primitive variable types
  black - normal code
  bold pink / bold light green - documentation key words
  bold light blue - documentation key word targets
  light brown - integer constants
  red - constant character arrays ( strings )
  purple - character constant
  
  The code should copy into an editor without color highlighting.

Saturday, July 13, 2013

Factorial, getting gui with X11

Factorial with a X Windows user interface


With this post I looked at programming for the X Window System (X11). X11 is hardware-independent application programming interface (API) for graphical user interface (GUI) programming that includes commands for drawing to a screen and user interaction through key board, mouse or other input devices.   The interface provides a means for software to communicate with graphics hardware including over a network.  X11 was designed with local GUI interaction for programs running on a remote computer as a major issue.  The X Window System was started at Massachusetts Institute of Technology (MIT) in 1984 and quickly became the de facto standard for networked workstations.  The X Window System is constantly being improved, but the default X11 is a pixel based system which produces ugly text without anti-aliasing.   A pixel based system draws a color to pixels so that object's edges appear jagged.  Anti-aliasing reduces the jagged edges by drawing varying colors around the border of objects to blend the object color with the surrounding colors. 

To access the code which is amply commented see the post C code for factorial program using X11, Xft and GMP.  A screen shot of the program with anti-aliased fonts.

Thursday, June 13, 2013

Factorial - Spreadsheets

Spreadsheet Factorials

Spreadsheets can be used for programming computations.  Without scripts or macros a spreadsheet does not have a loop capability.  But, it can perform computations referencing cells to provide a sequence of cells with factorials.  Cells are much like variables in other programming languages, they store values.

Tuesday, June 11, 2013

Factorial - scripts - sh, csh, dc, bc

Sunday, June 9, 2013

More Factorial Fun, Python and Lisp

More Factorial Fun, Python and Lisp


This continues the factorial study started in the prior post.  The factorial increases rapidly and can be programmed as a simple loop.  The factorial, indicated with an exclamation point after a positive integer number is the product of all integers from 1 up to and including the integer.

Wednesday, June 5, 2013

Factorial Programs (Fortran and C Family)

Factorial Fun

 There are many computer programming languages and many more being developed all the time.  Usually the first program when learning a new language is "Hello World!", which outputs the text "Hello World!" to the screen.
For engineers, scientist and mathematicians the next program should be the factorial.  The factorial is symbolized with an exclamation point, !, after a positive integer.  It occurs often in probability and series.  The factorial is the product of all integers from one up to and including the number.
  • 1! = 1
  • 2! = 1*2 = 2
  • 3! = 1*2*3 = 6
  • 4! = 1*2*3*4 = 24
  • 5! = 1*2*3*4*5 = 120
 The factorial increases rapidly showing computer artifacts due to limited precision.

The following example programs in various computer languages take a number from the user, without checking if it is valid, to keep the code simple, and returns its factorial.  Each example includes an introduction and detailed description.

Monday, April 15, 2013

PDE1D - A code for comptational methods for 1 dimensional PDEs


 I have been working on a program for teaching and research on One Dimensional Partial Differential Equation Numerical Solution Methods.  I hope to add many more methods and PDE equations.  The current Wave and Burger's Equation solvers with symmetric boundary conditions can be fun to play with various parameters.  The figure below shows solutions using three different solvers at a CFL of 0.9.  CFL is a time step constraint where at a CFL of 1 the wave would travel one point each step.  The methods shown are 1st order upwind Euler explicit which is dissipative so the amplitude decreases.  The FEM, Finite Element Method, uses the very stable trapezoidal time integration with linear elements.  This FEM method has no dissipation but some phase error resulting in a shift in the peak values.  Finally the RK4 - Fourth order Runge Kutta method using FEM linear elements is the most accurate but requires more computation and is stable only to CFL  = 1.


PDE1D screen shot.