<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 254: Fit complex function</title><link href="https://sourceforge.net/p/gnuplot/support-requests/254/" rel="alternate"/><link href="https://sourceforge.net/p/gnuplot/support-requests/254/feed.atom" rel="self"/><id>https://sourceforge.net/p/gnuplot/support-requests/254/</id><updated>2020-09-20T20:02:46.609000Z</updated><subtitle>Recent changes to 254: Fit complex function</subtitle><entry><title>#254 Fit complex function</title><link href="https://sourceforge.net/p/gnuplot/support-requests/254/?limit=25#a29a" rel="alternate"/><published>2020-09-20T20:02:46.609000Z</published><updated>2020-09-20T20:02:46.609000Z</updated><author><name>Alexander Stangl</name><uri>https://sourceforge.net/u/fahrrad13/</uri></author><id>https://sourceforge.net5d7f7ca3f570fce3e43fecd34cc787fe8f5da957</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks for your reply. &lt;br/&gt;
This blogspot describes bascially the same approach. So for gnuplot duplicating the data (or reading it in twice with CoreUtilities) and fitting real and complex data via multi-branch fit seems to be the best option with good  fitting results.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#254 Fit complex function</title><link href="https://sourceforge.net/p/gnuplot/support-requests/254/?limit=25#608d" rel="alternate"/><published>2020-09-18T23:09:39.550000Z</published><updated>2020-09-18T23:09:39.550000Z</updated><author><name>Ethan Merritt</name><uri>https://sourceforge.net/u/sfeam/</uri></author><id>https://sourceforge.net023db73511ed7d708ecb9de14350041725bbe40c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Not my field of expertise, but I found this:&lt;br/&gt;
&lt;a href="https://stevethemoose.blogspot.com/2014/04/levenbergmarquardt-fitting-to-complex.html" rel="nofollow"&gt;https://stevethemoose.blogspot.com/2014/04/levenbergmarquardt-fitting-to-complex.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Fit complex function</title><link href="https://sourceforge.net/p/gnuplot/support-requests/254/" rel="alternate"/><published>2020-09-18T08:42:39.806000Z</published><updated>2020-09-18T08:42:39.806000Z</updated><author><name>Alexander Stangl</name><uri>https://sourceforge.net/u/fahrrad13/</uri></author><id>https://sourceforge.net07cb834be1c94a0bceaa1512f3d2557fddcb9976</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;I would like to fit a complex function. However, also in the fit function "using" requires floating numbers and cannot handle complex numbers. &lt;br/&gt;
My data file has 3 columns: x, real component of f(x), imaginary component of f(x)&lt;br/&gt;
I have managed so far with a work around using multibranch fitting:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="s s-Atom"&gt;i=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="s s-Atom"&gt;#imaginary&lt;/span&gt; &lt;span class="s s-Atom"&gt;unit&lt;/span&gt;

&lt;span class="s s-Atom"&gt;#a&lt;/span&gt; &lt;span class="s s-Atom"&gt;complex&lt;/span&gt; &lt;span class="s s-Atom"&gt;function&lt;/span&gt;
&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s s-Atom"&gt;b&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="s s-Atom"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;

&lt;span class="s s-Atom"&gt;#multibranch&lt;/span&gt; &lt;span class="nn"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
&lt;span class="s s-Atom"&gt;#fit&lt;/span&gt; &lt;span class="s s-Atom"&gt;first&lt;/span&gt; &lt;span class="s s-Atom"&gt;real&lt;/span&gt; &lt;span class="s s-Atom"&gt;part&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s s-Atom"&gt;then&lt;/span&gt; &lt;span class="s s-Atom"&gt;imaginary&lt;/span&gt; &lt;span class="s s-Atom"&gt;part&lt;/span&gt;
&lt;span class="nf"&gt;g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s s-Atom"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;y&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="s s-Atom"&gt;?&lt;/span&gt; &lt;span class="nf"&gt;real&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="s s-Atom"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;imag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="s s-Atom"&gt;fit&lt;/span&gt; &lt;span class="nf"&gt;g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s s-Atom"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s s-Atom"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s2"&gt;"file.dat"&lt;/span&gt; &lt;span class="s s-Atom"&gt;u&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="s s-Atom"&gt;:&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="s s-Atom"&gt;?&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="s s-Atom"&gt;:&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s s-Atom"&gt;via&lt;/span&gt; &lt;span class="s s-Atom"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s s-Atom"&gt;b&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;however, to do this I needed to duplicate the data in the file to be able to run this multibranch fit (block 0 is used to fit the real part, block 1 for the imaginary part).&lt;/p&gt;
&lt;p&gt;Now my question:&lt;br/&gt;
is there anyway to fit a complex function more elegant and/or is there anyway to read in the data file twice without having to duplicate the data within the file?&lt;/p&gt;
&lt;p&gt;For the latter I also managed using CoreUtils with the "cat" command:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;fit&lt;/span&gt; &lt;span class="k"&gt;g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt; cat "file.dat" "newlines.txt" "file.dat"'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;where "newlines.txt" contains only two empty new lines, so that the second time file .dat is loaded as a new block.&lt;/p&gt;
&lt;p&gt;Thanks for your help!&lt;br/&gt;
Best,&lt;br/&gt;
Alex&lt;/p&gt;
&lt;p&gt;For more info about CoreUtils in gnuplot see e.g. here:&lt;br/&gt;
&lt;a href="https://stackoverflow.com/questions/11549004/gnuplot-plot-data-from-two-files-in-one-x-coordinate-in-other-y" rel="nofollow"&gt;https://stackoverflow.com/questions/11549004/gnuplot-plot-data-from-two-files-in-one-x-coordinate-in-other-y&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://gnuplot.10905.n7.nabble.com/combining-data-from-different-input-files-td3528.html" rel="nofollow"&gt;http://gnuplot.10905.n7.nabble.com/combining-data-from-different-input-files-td3528.html&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://gnuwin32.sourceforge.net/packages/coreutils.htm" rel="nofollow"&gt;http://gnuwin32.sourceforge.net/packages/coreutils.htm&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>