Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

[Question] NonlinearRegress with two independent variables

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114884] [Question] NonlinearRegress with two independent variables
  • From: Jiwan Kim <hwoarang.kim at gmail.com>
  • Date: Tue, 21 Dec 2010 00:20:33 -0500 (EST)

To whom it may concern,

I am using the mathematica 6.0.
And I want to extract several parameters (K2, Ms) using NonlinearRegress
function.
The independent variables of NonlinearRegress is two, Kel and H.
Experimental data is given as dat = (Kel, H, Freq).
So I want to fit the experimental value of Freq with calculated value of
Freq.
Freq calculation is given in the NDsolve function.
And theta in Freq equation is given by the derivative condition of FE
equation.

I have no idea why this equation doen't work properly.
Please save me...
I copy and paste the source code below.
I am not sure that this is right type of source.

Thank you.

Remove["Global`*"];
<< Statistics`NonlinearFit`
$RecursionLimit = \[Infinity];
Subscript[\[Mu], 0] := 4 \[Pi] 10^-7; K1eff :=
 2.5 10^4; Kel =.; K2 =.; \[Phi] :=
 72 \[Pi]/180; H =.; Ms =.; \[Theta] =.;
FE[\[Theta]_, K2_, Ms_, Kel_, H_] := (K1eff - Kel) Sin[\[Theta]]^2 +
   K2 Sin[\[Theta]]^4 -
   Subscript[\[Mu], 0] H Ms Cos[\[Phi] - \[Theta]];
dat = {{0, 198944, 8.12}, {0, 278521, 10.89}, {0, 350141,
    12.56}, {2 10^4, 198944, 8.6}, {2 10^4, 278521, 11.49}, {2 10^4,
    350141, 13.32}};
modelTheta[K2_?NumericQ, Ms_?NumericQ, Kel_?NumericQ,
  H_?NumericQ] := \[Theta][Kel, H] /.
  NDSolve[{D[FE[\[Theta], K2, Ms, Kel, H], \[Theta]] == 0,
     Freq[Kel, H] -
       1/(2 \[Pi]) ((1.76 10^2 Subscript[\[Mu],
            0])^2 ((2 (K1eff - Kel))/(Subscript[\[Mu], 0] Ms)
             Cos[\[Theta]]^2 + (4 K2)/(Subscript[\[Mu], 0] Ms)
              Cos[\[Theta]]^4 + H Cos[\[Theta] - \[Phi]]))^0.5*(((
            2 (K1eff - Kel) + 2 K2)/(Subscript[\[Mu], 0] Ms)
            Cos[2 \[Theta]] + (2 K2 )/(Subscript[\[Mu], 0] Ms)
            Cos[2 \[Theta]] + H Cos[\[Theta] - \[Phi]]))^0.5 ==
      0, \[Theta][0, 0] == 0}, {\[Theta], Freq}, {Kel, 0, 3 10^4}, {H,
      0, 3.6 10^5}, MaxSteps -> Infinity][[1]]
modelFreq[K2_?NumericQ, Ms_?NumericQ, Kel_?NumericQ, H_?NumericQ] :=
 Freq[Kel, H] /.
  NDSolve[{D[FE[\[Theta], K2, Ms, Kel, H], \[Theta]] == 0,
     Freq[Kel, H] -
       1/(2 \[Pi]) ((1.76 10^2 Subscript[\[Mu],
            0])^2 ((2 (K1eff - Kel))/(Subscript[\[Mu], 0] Ms)
             Cos[\[Theta]]^2 + (4 K2)/(Subscript[\[Mu], 0] Ms)
              Cos[\[Theta]]^4 + H Cos[\[Theta] - \[Phi]]))^0.5*(((
            2 (K1eff - Kel) + 2 K2)/(Subscript[\[Mu], 0] Ms)
            Cos[2 \[Theta]] + (2 K2 )/(Subscript[\[Mu], 0] Ms)
            Cos[2 \[Theta]] + H Cos[\[Theta] - \[Phi]]))^0.5 ==
      0, \[Theta][0, 0] == 0}, {\[Theta], Freq}, {Kel, 0, 3 10^4}, {H,
      0, 3.6 10^5}, MaxSteps -> Infinity][[1]]
NonlinearRegress[dat,
 modelFreq[K2, Ms, Kel, H], {Kel, H}, {{K2, 5 10^4}, {Ms, 4 10^5}},
 ShowProgress -> True]
b = ListPlot3D[dat, Mesh -> All, PlotRange -> All]


  • Prev by Date: Re: Complete uninstall of Mathematica 6/7/8 on a Mac
  • Next by Date: Re: Mathematica daily WTF
  • Previous by thread: Re: The size of image output
  • Next by thread: How can I obtain the common tangent of two curves within