[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]