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

Reply via email to