我想评估整数
的简单例子a = max(solve(x^3 - 2*x^2 + x ==0 , x));
fun = @(x) exp(-x.^2).*log(x).^2;
q = integral(fun,0,a)
,错误是
Error using integral (line 85)
A and B must be floating-point scalars.
任何提示?我的积分的下限必须是函数,而不是数字。
答案 0 :(得分:2)
Matlab命令solve
返回符号结果。 integral
仅接受数字输入。使用double
将符号转换为数字。由于您的代码现在已经编写,因此max
已经因符号输入而引发错误。以下作品。
syms x;
a = max(double(solve(x^3 - 2*x^2 + x)));
fun = @(x) exp(-x.^2).*log(x).^2;
q = integral(fun,0,a)
输出:1.9331
。
我的积分的下限必须是函数,而不是数字
integral
是一个数字集成例程;集成的限制必须是数字。
答案 1 :(得分:0)
在断点处检查a的值,或者删除;从行尾开始,打印 a 。根据错误, a 不是标量浮点数。您可能需要另一个max()或double()语句将向量转换为单个值。