我需要根据3个参数求解一个变量的等式
gg[x_, \[Omega]x_, \[Omega]z_] := Solve[force[x, z, \[Omega]x, \[Omega]z] == 0, z][[6, 1, 2]].
我得到的是以下
gg[x_, \[Omega]x_, \[Omega]z_] = Root[-4.4427710843373496874144566600000*10^26 x^2 \[Omega]x^2 +
2.28560758239644800000000000000000*10^30 \[Omega]z^2 #1 +
1.11069277108433733641205617536723*10^27 \[Omega]z^2 #1^2 +
2.1589680420040268140562047245972*10^23 \[Omega]z^2 #1^3 +
2.0983043771159875881741103609327*10^19 \[Omega]z^2 #1^4 +
1.01967263372208373631680481830640*10^15 \[Omega]z^2 #1^5 +
1.9820428176217022632960618784981*10^10 \[Omega]z^2 #1^6 &, 6]
到目前为止一切顺利。我能够对此进行绘制,但是不能简单地将其与一个变量相匹配,其他两个变量作为拟合参数与NonlinearModelfit相对应
NonlinearModelFit[data, gg[x, \[Omega]x, \[Omega]z], {{\[Omega]x, 300000}, {\[Omega]z,40000}}, x].
我收到以下错误:
NonlinearModelFit::nrlnum: The function value {-9134.52+872.949 I,-8039.76+1794.15 I,-7765.74+2048.02 I,-7572.89+2235.07 I,-7380.16+2427.79 I} is not a list of real numbers with dimensions {5} at {\[Omega]x,\[Omega]z} = {300000.,40000.}.
NonlinearModelFit[{{6.8, 0}, {36, 4.8}, {48.3, 9.5}, {58.5, 15}, {70,
20.4}}, Root[-4.4427710843373496874144566600000*10^26 x^2 \
\[Omega]x^2 +
2.28560758239644800000000000000000*10^30 \[Omega]z^2 #1 +
1.11069277108433733641205617536723*10^27 \[Omega]z^2 #1^2 +
2.1589680420040268140562047245972*10^23 \[Omega]z^2 #1^3 +
2.0983043771159875881741103609327*10^19 \[Omega]z^2 #1^4 +
1.01967263372208373631680481830640*10^15 \[Omega]z^2 #1^5 +
1.9820428176217022632960618784981*10^10 \[Omega]z^2 #1^6 &,
6], {{\[Omega]x, 300000}, {\[Omega]z, 40000}}, x]
我是否需要将gg [x,omegax,omegaz]函数转换为正常函数以应用NonlinearModelFit?
编辑: 我的力量功能是:
pot[x_, z_, fx_, fz_] :=
m/2*((2*\[Pi]*fx)^2*x^2*r0^4)/(r0 + z*Tan[\[Theta]])^4 +
m/2*(2*\[Pi]*fz)^2*z^2
force[x_, z_, fx_, fz_] := D[pot[x, z, fx, fz], z]
这里有一些示例数据:
data = {{6.8, 0}, {36, 4.8}, {48.3, 9.5}, {58.5, 15}, {70, 20.4}};