OK, forget my previous answer.
Use this:
function [n] = sellmeier(KL, lambda)
K1 = KL(1); K2 = KL(2); K3 = KL(3);
L1 = KL(4); L2 = KL(5); L3 = KL(6);
lambdacarre = lambda.*lambda;
foo1 = lambdacarre - L1;
foo2 = lambdacarre - L2;
foo3 = lambdacarre - L3;
foo = 1./(foo1.*foo2.*foo3);
n = sqrt(1 +...
lambdacarre.*(K1*foo.*foo2.*foo3 + K2*foo.*foo1.*foo3 +
K3*foo.*foo1.*foo2));
n=real(n);
endfunction
Now it works.
Antoine
PS: Here is the issue: your sellmeier function should be bulletproof and
gracefully return real values no matter what parameters you feed to it.
Le 27/08/2020 à 16:52, Dang Ngoc Chan, Christophe a écrit :
Hello all,
Let's talk about optics.
I have a glass, its refraction index n varies with the wavelength lamba.
I have a CSV file with the corresponding data (verre_HOQ.cvs attached), 52
points.
I want to model this with the Sellmeier model
https://en.wikipedia.org/wiki/Sellmeier_equation
and use for this the attached script (regression_sellmeier.sce).
Mind to set the path at line 7 of the script if you want to run it.
My problem:
I can run piecewise regression,
i.e. it runs when I work with the points 1 to 25, 13 to 39, or 32 to 52;
e.g. at lines 11 and 12, it works when I use
// ----------
lambda = 1e-3*donnees(1:25, 1); // en µm
nexp = donnees(1:25, 2);
// ----------
but when I try to extend these ranges (and of course when I try to use all the
points),
it fails with the following error:
5215700pt: Wrong type for output argument #1: Real scalar expected.
Can anyone tell me what goes on here?
Regards
--
Christophe Dang Ngoc Chan
Mechanical calculation engineer
General
This e-mail may contain confidential and/or privileged information. If you are
not the intended recipient (or have received this e-mail in error), please
notify the sender immediately and destroy this e-mail. Any unauthorized
copying, disclosure or distribution of the material in this e-mail is strictly
forbidden.
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users