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: [mg114101] [Question] NonlinearRegress with two independent variables.
  • From: Jiwan Kim <hwoarang.kim at gmail.com>
  • Date: Tue, 23 Nov 2010 06:02:01 -0500 (EST)
  • References: <AANLkTikTpdN0CdPmLbYGBUYV_FirS1jgyeFe4UFeNNND@mail.gmail.com>

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 attach the source code.
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: Mathematica 8: first impressions
  • Next by Date: Re: Need help NIntegrating stepwise 3D probability density functions
  • Previous by thread: Re: Plot function at specific points
  • Next by thread: [Question] NonlinearRegress with two independent variables.