Wolfram mathematica 无法生成适合单变量数据的非线性模型

Wolfram mathematica 无法生成适合单变量数据的非线性模型,wolfram-mathematica,mathematical-optimization,Wolfram Mathematica,Mathematical Optimization,我试图用实验数据来模拟克尔效应,施加在交叉偏振器上的独立变量电压(U)和光强度(L)之间的关系是L=a*sin(b*U^2),其中a和b是待确定的独立常数 data = {{300, 0.014336918}, {350, 0.023297491}, {400, 0.053763441}, {450, 0.098566308}, {500, 0.172043011}, {550, 0.23297491}, {600, 0.336917563}, {650, 0.336917563

我试图用实验数据来模拟克尔效应,施加在交叉偏振器上的独立变量电压(U)和光强度(L)之间的关系是L=a*sin(b*U^2),其中a和b是待确定的独立常数

data = {{300, 0.014336918}, {350, 0.023297491}, {400, 
   0.053763441}, {450, 0.098566308}, {500, 0.172043011}, {550, 
   0.23297491}, {600, 0.336917563}, {650, 0.336917563}, {700, 
   0.403225806}, {750, 0.448028674}, {800, 0.480286738}, {850, 
   0.485663082}, {900, 0.487455197}, {950, 0.476702509}, {970, 
   0.465949821}, {985, 0.435483871}, {995, 0.415770609}}

nlm = NonlinearModelFit[data, a*Sin (b*(x^2)), {a, b}, x]
但是,我得到以下错误:

NonlinearModelFit::nrlnum: ...
 is not a list of real numbers with dimensions {17} at {a,b} = {1.,1.}.

我不熟悉这种语言编程,但我不知道我做错了什么。有什么方法可以构造我的数据使这个函数实际工作吗?

阅读文档后,我意识到非线性函数是一种局部迭代近似方法,由于参数b的系数太小,Mathematica无法计算b的值。因此,将函数线性化并替换回原始方程解决了我的问题。

阅读文档后,我意识到非线性函数是一种局部迭代近似方法,由于参数b的系数太小,Mathematica无法计算b的值。因此,函数的线性化和替换回到原始方程解决了我的问题。

Sin(b*(x^2))
不是Mathematica语法…使用
Sin[b*(x^2)]
Sin(b*(x^2))不是Mathematica语法…使用
Sin[b*(x^2)]