error using fzero in a loop
1 次查看(过去 30 天)
显示 更早的评论
I'm trying to find all the points between 0 and 10 where the derivative of y=0 by using (x1(H)+x2(H))/2) as a staring point but I keep on getting this error... Please help :(
Error using fzero (line 169) If FUN is a MATLAB object, it must have an feval method.
h=10;
ti=(1/200);
n=[1.2 2.9];
ni=[1 3];
na=[2 1];
x=[];
for k=1:numel(n)
x=sort([x (((0:1:1+(ceil(h/(n(k)))))-0.5)*(n(k)))]);
end
x1=(x(1:numel(x)-1));
x2=(x(2:numel(x)));
for T=[1:10];
nwa=[na.*sin((T*ti)*(pi./(ni)))];
for H=(1:numel(x1))
syms d;
y=sum(nwa.*cos(d.*(pi./n)));
X(H)=fzero(diff(y),(x1(H)+x2(H))/2);
end
P=(X(X>x1<x2))';
end
0 个评论
采纳的回答
dpb
2013-10-20
From the doc's for fzero
X = fzero(FUN,X0) ... FUN is a function handle.
Your code is
X(H)=fzero(diff(y),(x1(H)+x2(H))/2);
where you've entered an actual function.
4 个评论
dpb
2013-10-21
There's an example in the doc on fzero using trig functions for formulation that should be illustrative.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!