フィルターのクリア

error using fzero in a loop

2 ビュー (過去 30 日間)
Tristan
Tristan 2013 年 10 月 20 日
コメント済み: dpb 2013 年 10 月 21 日
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

採用された回答

dpb
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 件のコメント
Tristan
Tristan 2013 年 10 月 20 日
I'm trying to find a way to calculate the position of the antinodes (the maximas and minimas) of a waveworm=sum(nwa.*cos(d.*(pi./n))) by using its derivative, and then using fzero starting at all the midpoints between consecutive multiples of n between 0 and 10.
dpb
dpb 2013 年 10 月 21 日
There's an example in the doc on fzero using trig functions for formulation that should be illustrative.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOptimization についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by