这句警告,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');
给定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