在matlab中用于定积分的不平衡或意外的括号或括号

时间:2014-08-29 02:15:52

标签: matlab

我正在编写一个程序,可以解决倒立摆的运动方程。但是,在“F = int ...”行上,我收到一条错误,说“不平衡或意外的括号或括号”。但是,我检查了很多次,似乎支架/括号是平衡的。我猜这个错误来自于部分“s,tn-(n / 2),tn +(n / 2)”,但我不确定为什么

function [ theta ] = Untitled( theta_o,omega_o )

nt=5001; %since (50-0)/.01 = 5000
dt = .01; % =H
H=.01;

theta_n = ones(nt,1);
theta_n(1)=0; %theta_o

omega_n = ones(1,nt);
omega_n(1)=-0.4; %omega_o

epsilon=10^(-6);
eta = epsilon*10;

t_o=0;

for n=1:4999
    tn=t_o+n*dt;
    F=int((422.11/eta)*exp[[5*(4*((eta*t-s-tn)^2)/eta^2)-1]^(-1)]*omega, s,tn-(n/2),tn+(n/2))
    theta_n(n+1) = theta_n(n) + h*F;
end

end

编辑:我将[]转换为(),现在错误“未定义的函数或变量't'。”

1 个答案:

答案 0 :(得分:1)

@Molly在她的评论中指出正确的行应该是:

F=int((422.11/eta)*exp((5*(4*((eta*t-s-tn)^2)/eta^2)-1)^(-1))*omega, s,tn-(n/2),tn+(n/2))

您不能在Matlab中使用方括号[],就像在纸上书写数学时一样。对于Matlab中的所有括号,使用圆括号()

方括号用于表示Matlab中的矩阵。

编辑:该错误是因为您的代码中有eta*t,但您没有告诉MATLAB t是什么。我的猜测是它应该是tndt,或者您需要将其定义为:

t = %the correct value for t

但是,我不熟悉您要解决的问题,因此我建议您检查是否正确复制了公式。