Documentation – Curve Fit Tools [Android App]

In this post I have tried documenting my recently published app – Curve Fit Tools for Android.

Download Link: https://play.google.com/store/apps/details?id=com.bragitoff.curvefit_leastsquares

Help:

Entering the data-set:

  • Enter the x-values and y-values using the form given and press submit after each entry to store it.
  • You can scroll through the list of data points to see if you entered them correctly.
    Note: You can enter a new data-set or delete the existing values by clicking on ‘Clear’ button.
  • You need to provide at least two pairs of xy values and equal number of x and y values.
  • Also you cannot repeat an x-value.
  • Exponential Fit cannot be calculated for negative y-values and will result in NaN values or, highly unlikely, a crash.
  • A quick hack—> Instead of clicking on the ‘Done’ key after entering a data-point, click on the ‘Submit’ button. Pressing the ‘Done’ takes away the keyboard and you have to click on the form again and again thus slowing down the process. Pressing the ‘Submit’ key doesn’t take away the keyboard and will improve the data entering speed.

Calculating the Fit:

After entering your data-set just click on ‘Calculate’ and on the next screen choose from three options: (i) Exponential Fitting, (ii) Linear Fitting and (iii) Polynomial Fitting.

If you choose ‘Polynomial Fit’, enter the degree of polynomial that you want to fit the curve with.
Then click on ‘Submit’.

Saving Data as CSV:

After entering your data-set you can save it as a csv file for future reference.

Files are saved in a folder called ‘Curve Fitter CSV’, which would be created either inside your external storage or internal storage.

What is a CSV?Wikipedia 
CSV files can be read by any excel type software or if you have an Office Suite on your phone.
You can also transfer the file to your computer and open it on MS Excel or any other software of your preference.

Reading Data from a CSV:

Curve Fit-Tools has a unique feature which lets you read CSV files from your storage.
This feature is extremely useful and desirable as it allows you to re-analyze a data-set that you saved as a CSV before, thus, saving you a lot of time.

You could also have someone mail you their data as a csv and you could analyze it on the go.

To read a CSV: Just click on ‘Read CSV’ button on the Main Screen. This would bring up a file browser showing the contents of your external directory, you could then browse and select your CSV file. The data would be read and the x-y data would be filled out automatically.

Note: Your CSV file should contain the x-axis values in the first column and the y-axis values in the second column.
The app uses it’s own built-in file browser and not the one installed on your device.

Algorithm:

Curve Fit- Tools calculates the fit using the Least Square Approximation Method(Wikipedia).

Linear Fitting: Algorithm

Exponential Fitting: Algorithm

Polynomial Fitting: Algorithm

More useful resources on Numerical Methods can be found on my(developer) blog: bragitoff.com under the category ->Physics>Numerical Analysis.

Graphing Library:

Curve Fit-Tools uses the GraphView library by jjoe.

License

GraphView is currently published under Apache v2 license.

Which means that you are allowed to use it in your closed source applications.
See the complete license here: https://github.com/jjoe64/GraphView/blob/master/license.txt
And more information about that license model at wikipedia: https://en.wikipedia.org/wiki/Apache_License

CSV Read/Write Library

Curve Fit-Tools uses the opencsv library by Glen Smith for reading and writing CSV’s.

License

opencsv is published under Apache v2 license.

To find out more details of the license, read the Apache 2.0 license agreement.

File Picking Library

Curve Fit-Tools uses the MaterialFilePicker library by nbsp-Team for picking up the CSV file from directory.

License:

MaterialFilePicker is published under Apache v2 License.

To find out more details of the license, read the Apache 2.0 license agreement.

 

 

 

I'm a physicist specializing in theoretical, computational and experimental condensed matter physics. I like to develop Physics related apps and softwares from time to time. Can code in most of the popular languages. Like to share my knowledge in Physics and applications using this Blog and a YouTube channel.



Leave a Reply

Your email address will not be published. Required fields are marked *