请问matlab里Undefined function ✀int✀ for input arguments of type ✀double✀. 是什么意思呢?

syms f xx=-3:0.1:3;ya=int(x.^3);y=[0,x]plot(y,ya)
2024-12-30 03:56:45
推荐回答(2个)
回答1:

这句警告,Undefined function 'int' for input arguments of type 'double'. 的意思是积分函数的变量类型未定义为“双”输入参数。

错误的原因,是 ya=int(x.^3); 的代码上一句有问题,不能重新把x定义为数组变量,积分只能对变量积分,而不能对数值积分。

其他主要错误,①y=[0,x]的个数与x的个数不相等;②计算ya值,应for语句,把ya一个一个地计算出来。

整个代码应这样写:

syms  x

ya=int(x^3);

x0=-3:0.1:3;

for i=1:length(x0)

x=x0(i)

y(i)=eval(ya);

end

ya=y;

y=x0;

plot(y,ya)

xlabel('x'),ylabel('y');

回答2:

给定x,则 x.^3 就变成数组了,没有办法积分
你可以参考一下下面的
可以把积分上限定义为变值(或许可行)本人电脑的MATLAB不支持syms

是计算积分的,例如:将5/((x-1)(x-2)(x-3))从4积分到5
在MATLAB 中输入程序
>> syms x % 定义符号
>> f=5/((x-1)*(x-2)*(x-3)) % 定义被积函数
f = 5/(x-1)/(x-2)/(x-3)
>> F=int(f,x,4,5) % 求函数f 对符号变量x 从4 到5 的定积分
F = 25/2*log(2)-15/2*log(3) % 定积分的符号解
>>y=numeric(F) % 把符号解转化为数值结果
y = 0.4247