如何在JMP中进行微积分?
有一个二维的数据,比如电流和时间,那么在JMP Grapher中,我们可以绘制一条曲线并对其进行平滑拟合,具体请参见下图。
会有多少电量?这意味着我想知道如何计算曲线下的面积?
数学方面,如何在JMP中进行微积分?
这是一个简单的例子@马克贝利的建议。
Names default to Here(1);
dt = New Table("Example",
Add Rows( 5 ),
New Column( "Time",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 2, 4, 6, 8] )
),
New Column( "I",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.303858872597443, 0.22418155030798, 0.202170635461688,
0.181779722721203, 0.148724968294765]
)
)
);
//use bivariate for simplicity
biv = dt << Bivariate(
Y( :I ),
X( :Time ),
Fit Polynomial( 3, {Confid Shaded Indiv( 1 ), Line Color( {212, 73, 88} )} ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( 0 ), Max( 0.45 ), Inc( 0.05 ), Minor Ticks( 1 )}
)
)
);
//get the prediction formula string
fm = report(biv)[OutlineBox("Polynomial ?")][TextEditBox(1)] << get text;
//get the string to the right of the equal sign and convert the string to an expression using Parse()
fm = Parse(Trim(word(2, fm, "=")));
area = Integrate(fm, Time, col minimum(:Time), col maximum(:Time));
Caption("The area under this curve is " || char(area));

看帮助>脚本索引并搜索整合功能。 此函数执行表达式的数值积分(拟合模型)。 使用索引中的“帮助”按钮可以获得有关此功能的更多信息。
您可能需要将拟合模型保存为新的列公式,然后使用简短的脚本从公式中提取表达式并将其用作 Integrate() 函数的参数。