wenjun023 发表于 2008-8-6 11:39

大家可以看看我这fzero命令哪用错了吗

fun.m文件
function F=fun(dei,Cd,Fd,beta,omiga,Fti)
F = Cd.*dei+Fd.*(1-exp(-beta.*dei./omiga)./(1+exp(-beta.*dei./omiga)))-Fti;
sigmoid.m文件
%sigmoid模型%---------力计算位移
%F(t)=Cd*de+Fd*sgn(de)-F0=Kd*(x-e)-F0
%F(t)=Fd*(1-exp(-beta*de/omiga))/(1+exp(-beta*de/omiga))+Cd*de
clear all

Cd=8.684*1e3;%模型参数
Fd=1400;
beta=541;
omiga=12.56;
Hz=2;%sinwave frequency

dt=0.002;%荷载时间步长
dF=25;%荷载步长
Fmax=1500;%荷载范围

Ft=1500.*sin(12.56.*(0:dt:10));

de=zeros(1,length(Ft)+1);%预定义变量---内速度
e=de;%预定义变量---内位移

for i=1:length(Ft)
    de(i+1)=fzero(@de(i) fun(de(i),Cd,Fd,beta,omiga,Fti),de(i));%Cd.*dei+Fd.*(1-exp(-beta.*dei./omiga)./(1+exp(-beta.*dei./omiga)))-Fti
    e(i+1)=e(i)+de(i+1).*dt;%积分
end


comet(e(1,2:end),Ft)
%comet(de(1,2:end),Ft)


但是最后运行不了

wenjun023 发表于 2008-8-6 11:40

fun.m 和sigmoid.m是分开的,sigmoid.m调用fun.m

sigma665 发表于 2008-8-6 12:06

不知道你所说的运行不了是个什么情况

wenjun023 发表于 2008-8-6 21:55

就是出现错误,可以到matlab上试下

messenger 发表于 2008-8-7 00:19

嗯,fzero命令用法错误。

版面搜索,标题为“z=fzero('fname',x0)能否与带有两参数函数连用”

wenjun023 发表于 2008-8-8 01:13

我已经解决了,谢谢,不是fzero的错误,而是我自己粗心,function写错了
页: [1]
查看完整版本: 大家可以看看我这fzero命令哪用错了吗