【问题标题】:in matlab Unbalanced or unexpected parenthesis or bracket for definite integral在matlab中不平衡或意外的括号或括号用于定积分
【发布时间】:2014-10-23 00:29:47
【问题描述】:

我正在编写一个程序来求解倒立摆的运动方程。但是,在“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'。”

【问题讨论】:

  • 方括号应该是parenthesis
  • 我将[]转换成(),现在得到错误“未定义的函数或变量't'。”

标签: matlab


【解决方案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

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

【讨论】:

  • 我将[]转换为(),现在得到错误“未定义的函数或变量't'。”
  • @MK 设置 t 的值是否解决了您的问题?
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 2013-06-05
  • 2014-11-10
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多