Mathematica Mathematica, fitting an arbitrary number of parameters

AI Thread Summary
The discussion revolves around fitting data to a specific mathematical function involving a series expansion. The user is attempting to fit their data to the real part of the function A/(1-ix)(1+Σ(c_n/(1-ix)^n)) by numerically estimating the coefficients c_n while keeping A fixed. They initially used a method with FindFit in Mathematica but encountered issues when increasing the number of coefficients (N). A workaround was found when explicitly defining the first few coefficients, but this approach is impractical for larger values of N. Participants pointed out that the original code lacked the necessary factor of 1/(1-ix) and noted that the symbol N is protected in Mathematica, suggesting the use of 'n' instead. The user acknowledged these points and plans to revisit the code for corrections.
NeoDevin
Messages
334
Reaction score
2
Let's say I have some data, as a function of a variable x. I want to fit this to the real part of the function

\frac{A}{1-ix}\left(1+\sum_{n=1}^\infty\frac{c_n}{(1-ix)^n}\right)

by numerically fitting the first N of the c_n's (A is fixed). I tried something like

Code:
A = 1; N = 100;
fit = FindFit[data, Re[A(1+Sum[c[k]/(1-i x)^k,{k,1,N}])], Table[c[k], {k,1,N}], x];
Plot[Re[A(1+Sum[c[k]/(1-i x)^k,{k,1,N}])]/.fit, {x,0,10}]

However, this way does not work. For the case N=5, I put in the summation explicitly, calling my parameters c1, c2, etc, and it produces different (better) results than the above code. This is not feasible if I want the first 100 or 1000 coefficients, so any help with the above method would be appreciated. Thanks in advance.
 
Physics news on Phys.org
Anybody?
 
It looks like your code is missing the factor 1 / (1-ix)
 
Also, in Mathematica the symbol N is protected, use n instead.
 
Redbelly98 said:
It looks like your code is missing the factor 1 / (1-ix)
Yes, it is, but the original code wasn't. That was just me missing it when typing it into here.
DaleSpam said:
Also, in Mathematica the symbol N is protected, use n instead.
That could be the problem, I'll check it later. Thanks for the replies.
 

Similar threads

Back
Top