MATLAB积分变量内插函数
我希望执行如下所示的集成 我面临一个错误,因为我在插值函数中使用了积分变量'u'。(如果我用某个常数替换插值函数中的“u”,则积分运行良好。) 你能提供一些指针来修复它吗 附言:为了澄清,y=f(x)[分段函数],这就是为什么我要插值来确定中间值MATLAB积分变量内插函数,matlab,interpolation,symbolic-math,numerical-integration,Matlab,Interpolation,Symbolic Math,Numerical Integration,我希望执行如下所示的集成 我面临一个错误,因为我在插值函数中使用了积分变量'u'。(如果我用某个常数替换插值函数中的“u”,则积分运行良好。) 你能提供一些指针来修复它吗 附言:为了澄清,y=f(x)[分段函数],这就是为什么我要插值来确定中间值 非常感谢 您应该用一个更简单的集成例程替换int,而不要考虑syms。尝试内置集成,或 或者,您可以找到interp1的替代方案,并在其每个子间隔上调用int。感谢大家的帮助, 我发现integral()解决了这个问题,而不是符号整数。非常感谢 为什么
非常感谢 您应该用一个更简单的集成例程替换
int
,而不要考虑syms。尝试内置集成,或
或者,您可以找到interp1
的替代方案,并在其每个子间隔上调用int
。感谢大家的帮助,
我发现integral()解决了这个问题,而不是符号整数。非常感谢 为什么要使用syms u
?输入的是数字数据,我也会使用数字插值和积分。@DanielR,谢谢回复。如果省略syms u
则集成失败:>double(int(2*interp1(x,y,u),u,0,0.1))
未定义的函数或变量“u”。
如果初始化u=0,则得到:>u=0
>>double(int(2*interp1(x,y,u),u,0,0.1))`未定义函数“int”,用于输入类型为“double”的参数。
我肯定不太熟悉,请原谅我的无知:)
>>syms u
>>double(int(2*interp1(x,y,u),u,0,0.1))
Error using interp1>Interp1D (line 330)
Inputs must be floats, namely single or double.
Error in interp1 (line 220)
Vq = Interp1D(X,V,Xq,method);