我正在编写一个程序,可以解决倒立摆的运动方程。但是,在“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'。”
答案 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
是什么。我的猜测是它应该是tn
或dt
,或者您需要将其定义为:
t = %the correct value for t
但是,我不熟悉您要解决的问题,因此我建议您检查是否正确复制了公式。