【发布时间】:2014-10-24 13:43:40
【问题描述】:
我正在尝试创建一个等于卷积积分的函数 F(t),然后通过取值 F(tn) 来计算 theta_n(n+1)。但是,我收到错误“'char' 类型的输入参数的未定义函数'F'”。有什么问题?
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(nt,1);
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(tn);
end
end
【问题讨论】:
-
:=不是有效的 matlab 语法。不知道你打算实现什么。 -
您查看的是
inton this page 的版本吗?阅读该页顶部的通知。您正在符号工具箱中寻找sym/int的文档,它实际上是相同的,但直接在 Matlab 中工作。但是,我不确定sym/int是否会像您预期的那样返回symfun。 -
我正在尝试编写一个循环来计算每一步的定积分值。函数 F 非常复杂。简单来说,它整合了一堆关于s的项,从s=tn-(n/2)到s=tn+(n/2)。积分后,F还有一个变量t。所以你可以说 F(t) = integer(f(s,t)),其中 f(s,t) 是 "int(" 之后的一大堆术语。在 for 循环的最后一行,我想在 F 计算 f(s,t) 的积分后,在 t=tn 处计算 F(t)
标签: matlab loops integration numerical-methods convolution