All the Rest¶
Settings¶
The syntax is simple:
set option = value
changes the option,info set option
shows the current value,info set
lists all available options.
In the GUI
the options can be set in a dialog (
).The GUI configuration (colors, fonts, etc.) is changed in a different way (
) and is not covered here.It is possible to change the value of the option temporarily:
with option1=value1 [,option2=value2] command args...
For example:
info set fitting_method # show the current fitting method
set fitting_method = nelder_mead_simplex # change the method
# change the method only for this one fit command
with fitting_method = levenberg_marquardt fit
# and now the default method is back Nelder-Mead
# multiple comma-separated options can be given
with fitting_method=levenberg_marquardt, verbosity=quiet fit
The list of available options:
- autoplot
See autoplot.
- cwd
Current working directory or empty string if it was not set explicitely. Affects relative paths.
- default_sigma
Default y standard deviation. See Standard Deviation (or Weight). Possible values:
sqrt
max(y1/2, 1) andone
(1).- domain_percent
- epsilon
The ε value used to test floating-point numbers a and b for equality (it is well known that due to rounding errors the equality test for two numbers should have some tolerance, and the tolerance should be tailored to the application): |a−b| < ε. Default value: 10-12. You may need to decrease it when working with very small numbers.
- fit_replot
Refresh the plot when fitting (0/1).
- fitting_method
- function_cutoff
- height_correction
- lm_*
Setting to tune the Levenberg-Marquardt fitting method.
- logfile
String. File where the commands are logged. Empty – no logging.
- log_output
When logfile is set, log output together with input (0/1).
- max_fitting_time
Stop fitting when this number of seconds of processor time is exceeded. See Fitting Related Commands.
- max_wssr_evaluations
- nm_*
Setting to tune the Nelder-Mead downhill simplex fitting method.
- numeric_format
Format of numbers printed by the
info
command. It takes as a value a format string, the same assprintf()
in the C language. For exampleset numeric_format='%.3f'
changes the precision of numbers to 3 digits after the decimal point. Default value:%g
.- on_error
Action performed on error. If the option is set to
stop
(default) and the error happens in script, the script is stopped. Other possible values arenothing
(do nothing) andexit
(finish program – ensures that no error can be overlooked).- pseudo_random_seed
Some fitting methods and functions, such as
randnormal
in data expressions use a pseudo-random number generator. In some situations one may want to have repeatable and predictable results of the fitting, e.g. to make a presentation. Seed for a new sequence of pseudo-random numbers can be set using the optionpseudo_random_seed
. If it is set to 0, the seed is based on the current time and a sequence of pseudo-random numbers is different each time.- refresh_period
During time-consuming computations (like fitting) user interface can remain not changed for this time (in seconds). This option was introduced, because on one hand frequent refreshing of the program’s window notably slows down fitting, and on the other hand irresponsive program is a frustrating experience.
- verbosity
Possible values: -1 (silent), 0 (normal), 1 (verbose), 2 (very verbose).
- width_correction
Data View¶
The command plot
controls the region of the graph that is displayed:
plot [[xrange] yrange] [@n, ...]
xrange and yrange has syntax [min:max]
. If the boundaries
are skipped, they are automatically determined using the given datasets.
In the GUI
there is hardly ever a need to use this command directly.
The CLI version on Unix systems visualizes the data using the gnuplot
program, which has similar syntax for the plot range.
Examples:
plot [20.4:50] [10:20] # show x from 20.4 to 50 and y from 10 to 20
plot [20.4:] # x from 20.4 to the end,
# y range will be adjusted to encompass all data
plot # all data will be shown
The values of the options autoplot
and fit_replot
change the automatic plotting behaviour. By default, the plot is
refreshed automatically after changing the data or the model (autoplot=1
).
It is also possible to replot the model when fitting, to show the progress
(see the options fit_replot
and refresh_period
).
Redirecting the plot command to a file saves a plot as an image:
plot [20.4:50] [10:20] > myplot.png
For now, it works only in fityk (not cfityk) and is less flexible than
.Information Display¶
First, there is an option verbosity
which sets the amount of messages displayed when executing commands.
There are three commands that print explicitely requested information:
info
– used to show preformatted informationprint
– mainly used to output numbers (expression values)debug
– used for testing the program itself
The output of info
and print
can be redirected to a file:
info args > filename # truncate the file
info args >> filename # append to the file
info args > 'filename' # the filename can (and sometimes must) be in quotes
The redirection can create a file, so there is also a command to delete it:
delete file filename
info¶
The following info
arguments are recognized:
TypeName – definition
$variable_name – formula and value
%function_name – formula
F
– the list of functions in FZ
– the list of functions in Zcompiler
– options used when compiling the programconfidence level @n
– confidence limits for given confidence levelcov @n
– covariance matrixdata
– number of points, data filename and titledataset_count
– number of datasetserrors @n
– estimated uncertainties of parametersfilename
– dataset filenamefit
– goodness of fitfit_history
– info about recorded parameter setsformula
– full formula of the modelfunctions
– the list of %functionsgnuplot_formula
– full formula of the model, gnuplot styleguess
– peak-detection and linear regression infoguess [from:to]
– the same, but in the given rangehistory
– the list of all the command issued in this sessionhistory [m:n]
– selected commands from the historyhistory_summary
– the summary of command historymodels
– script that re-constructs all variables, functions and modelspeaks
– formatted list of parameters of functions in F.peaks_err
– the same as peaks + uncertaintiesprop
%function_name – parameters of the functionrefs
$variable_name – references to the variableset
– the list of settingsset
option – the current value of the optionsimplified_formula
– simplified formulasimplified_gnuplot_formula
– simplified formula, gnuplot stylestate
– generates a script that can reproduce the current state of the program. The scripts embeds all datasets.title
– dataset titletypes
– the list of function typesvariables
– the list of variablesversion
– version numberview
– boundaries of the visualized rectangle
Both info state
and info history
can be used to restore the current
session.
In the GUI
and .
print¶
The print command is followed by a comma-separated list of expressions and/or strings:
=-> p pi, pi^2, pi^3
3.14159 9.8696 31.0063
=-> with numeric_format='%.15f' print pi
3.141592653589793
=-> p '2+3 =', 2+3
2+3 = 5
The other valid arguments are filename
and title
.
They are useful for listing the same values for multiple datasets, e.g.:
=-> @*: print filename, F[0].area, F[0].area.error
print
can also print a list where each line corresponds to one data point,
as described in the section Exporting Data.
As an exception, print expression > filename
does not work
if the filename is not enclosed in single quotes. That is because the parser
interprets >
as a part of the expression.
Just use quotes (print 2+3 > 'tmp.dat'
).
debug¶
Only a few debug
sub-commands are documented here:
der
mathematic-function – shows derivatives:=-> debug der sin(a) + 3*exp(b/a) f(a, b) = sin(a)+3*exp(b/a) df / d a = cos(a)-3*exp(b/a)*b/a^2 df / d b = 3*exp(b/a)/a
df
x – compares the symbolic and numerical derivatives of F in x.lex
command – the list of tokens from the Fityk lexerparse
command – show the command as stored after parsingexpr
expression – VM code from the expressionrd
– derivatives for all variables%function
– bytecode, if available$variable
– derivatives
Other Commands¶
reset
– reset the sessionsleep
sec – makes the program wait sec seconds.quit
– works as expected; if it is found in a script it quits the program, not only the script.!
– commands that start with!
are passed (without the!
) to thesystem()
call (i.e. to the operating system).
Starting fityk and cfityk¶
On startup, the program runs a script from the
$HOME/.fityk/init
file (on MS Windows XP:
C:\Documents and Settings\USERNAME\.fityk\init
).
Following this, the program executes command passed with the --cmd
option, if given, and processes command line arguments:
if the argument starts with
=->
, the string following=->
is regarded as a command and executed (otherwise, it is regarded as a filename),if the filename has extension “.fit” or the file begins with a “# Fityk” string, it is assumed to be a script and is executed,
otherwise, it is assumed to be a data file; columns and data blocks can be specified in the normal way, see Loading Data.
There are also other parameters to the CLI and GUI versions of the program. Option “-h” (“/h” on MS Windows) gives the full listing:
$ fityk -h
Usage: fityk [-h] [-V] [--full-version] [-c <str>] [-g <str>] [-I] [-r] [script or data file...]
-h, --help show this help message
-V, --version output version information and exit
--full-version print version with additional info and exit
-c, --cmd=<str> script passed in as string
-g, --config=<str> choose GUI configuration
-I, --no-init don't process $HOME/.fityk/init file
-r, --reorder reorder data (50.xy before 100.xy)
$ cfityk -h
Usage: cfityk [-h] [-V] [-c <str>] [script or data file...]
-h, --help show this help message
-V, --version output version information and exit
-c, --cmd=<str> script passed in as string
-I, --no-init don't process $HOME/.fityk/init file
-n, --no-plot disable plotting (gnuplot)
-q, --quit don't enter interactive shell
The example of non-interactive using CLI version on Linux:
wojdyr@ubu:~/foo$ ls *.rdf
dat_a.rdf dat_r.rdf out.rdf
wojdyr@ubu:~/foo$ cfityk -q -I "=-> set verbosity=-1, autoplot=0" \
> *.rdf "=-> @*: print min(x if y > 0)"
in @0 dat_a: 1.8875
in @1 dat_r: 1.5105
in @2 out: 1.8305