How can i solve this equation with for loop?

y=[1 4 5 6 8]
for g=1:1:numel(y)
W1(g)=15*y(g)
W2(g)=@(x) x.^2+y(g)
f(g) = @(x) W1(g)+W2(x)+y(g);
ar = [-100 100];
for k1 = 1:length(ar);
rts(k1) = fzero(f(g), ar(k1))
end
end
Error: FUN must be a function, a valid string expression, or an inline function object.
To calculate the roots of this equation, for loop must be used, but i made a mistake when writing the code. How can i achieve this problem?
To find 5 roots of x, how kind of a change must be done for this operation?

 Akzeptierte Antwort

Torsten
Torsten am 9 Mär. 2017

1 Stimme

y = [1 4 5 6 8];
for g=1:1:numel(y)
W1 = 15*y(g);
W2 = @(x)x.^2+y(g);
f = @(x) W1+W2(x)+y(g);
ar=[-100 100];
for k1 = 1:length(ar)
rts(k1,g)=fzero(f,ar(k1));
end
end
But to tell you in advance: Your equations have no real roots.
Best wishes
Torsten.

1 Kommentar

Volkan Yangin
Volkan Yangin am 9 Mär. 2017
Thank you Torsten. This is a random equation. I am checking the code.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by