There are many programs that can do this.
1) The most technical and powerful is GPS Babel.
- For example, when installed, you can simplify a file with a command: gpsbabel -i gpx -f track_after.gpx -x simplify,count=400 -o gpx -F simplified_track.gpx
3) Many kinds of geo-sofware (AKA. GIS software) have a built in feature for this, and you can find many by searching for the phrase "simplify GPS file" on google.com.