未定义的函数或方法'int'表示'double'类型的输入参数

时间:2012-04-08 01:53:47

标签: matlab int

我编写了一个代码来评估蠕动泵送流速的临界值

dp = -(((theta - 1)+(1 + phi.*cos(2.*pi.*x))).*M.^3.*(cosh((1 + phi.*cos(2.*pi.*x)).*M)+ M.*beta.*sinh((1 + phi.*cos(2.*pi.*x)).*M)))./((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1 +(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M))-(alpha.*(M.^2.*((theta - 1)+(1 + phi.*cos(2.*pi.*x))).*(-1+2.*(1 + phi.*cos(2.*pi.*x)).^2.*M.^2+ cosh(2.*(1 + phi.*cos(2.*pi.*x)).*M)-2.*(1 + phi.*cos(2.*pi.*x)).*M.*sinh(2.*(1 + phi.*cos(2.*pi.*x)).*M)))./(8.*((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1+(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M)).^2));

p = int(y,x,0,1 + phi.*cos(2.*pi.*x));

如果theta p = 0的临界值,theta的临界值是多少; 我写了代码:

M = 2;
alpha = 0.2;
beta = 0.03;
phi = 0.6;
theta = 0;
x = 0.5;
y = -(((theta - 1)+(1 + phi.*cos(2.*pi.*x))).*M.^3.*(cosh((1 + phi.*cos(2.*pi.*x)).*M)+ M.*beta.*sinh((1 + phi.*cos(2.*pi.*x)).*M)))./((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1 +(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M))-(alpha.*(M.^2.*((theta - 1)+(1 + phi.*cos(2.*pi.*x))).*(-1+2.*(1 + phi.*cos(2.*pi.*x)).^2.*M.^2+ cosh(2.*(1 + phi.*cos(2.*pi.*x)).*M)-2.*(1 + phi.*cos(2.*pi.*x)).*M.*sinh(2.*(1 + phi.*cos(2.*pi.*x)).*M)))./(8.*((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1+(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M)).^2));
p = int(y,x,0,1 + phi.*cos(2.*pi.*x));
sym theta
solve( 'p','theta' );

检查一点,但我得到了

Undefined function or method 'int' for input arguments of type 'double'.
你能帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

如果您要做的是符号集成,则需要INT函数所属的符号工具箱。变量应该是符号的(用symsyms定义)。使用文档中的示例检查函数语法。