Creating a polyval function

21 visualizaciones (últimos 30 días)
Patrick Allaglo
Patrick Allaglo el 13 de Dic. de 2013
Editada: ledinh lam el 27 de Nov. de 2016
Hi everybody, I'm actually trying to create a function wich would work like a polyval function but without any S and MU. Just with p and x : polyval(p,x). http://www.mathworks.com/help/matlab/ref/polyval.html But I have absolutely no idea how to do it... I know what i would have to do on a paper but no idea in MATLAB. For example, i don't know how to write this in MATLAB : y = p1*x^n + p2*x^n–1 + … + p*n^x + p*n+1 So if someone could just show me a tip or a way to find it... Thx :)
  1 comentario
raviraja
raviraja el 13 de Dic. de 2013
Same Problem Here... Need Answer

Iniciar sesión para comentar.

Respuesta aceptada

Simon
Simon el 13 de Dic. de 2013
Hi!
But you can use polyval with just p and x!
  3 comentarios
Simon
Simon el 13 de Dic. de 2013
Maybe the best point to start is to enter
edit polyval
in your command window and take a look at the code.
Or you start from scratch, write a function that accepts a scalar/vector X and some polynomial coefficients P. Then of course you can directly calculate with
Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1)
Maybe use a loop (for scalar X) like
Y = 0;
N = length(P) - 1;
e = N:-1:0;
for n = 1:N+1
Y = Y + P(n) * X^e(n);
end
I didn't try it, but it should get you started.
Patrick Allaglo
Patrick Allaglo el 13 de Dic. de 2013
Well i just tried something and it works (with your loop suggestion :)) Thx

Iniciar sesión para comentar.

Más respuestas (4)

Azzi Abdelmalek
Azzi Abdelmalek el 13 de Dic. de 2013
Example
x=0:10
If you want to calculate a polynomial p=4x^2+2*x+5
p=[4 2 5]
out=polyval(p,x)
  1 comentario
Patrick Allaglo
Patrick Allaglo el 13 de Dic. de 2013
No you don't understand, I'm trying to create a function which would work like polyval. I'm not trying to calculate a polynomial. :)

Iniciar sesión para comentar.


ledinh lam
ledinh lam el 27 de Nov. de 2016
Editada: ledinh lam el 27 de Nov. de 2016
function p = poly_val(c0,c,x)
if isempty(c)==true
p =c0;
elseif isscalar(c)==true
p = c0+c*x;
else
w=c(:);
n=length(c);
a=x.^[1:n];
p=c0+a*w;
end
end
if true
% code
end

Jos (10584)
Jos (10584) el 13 de Dic. de 2013
I do not really get your problem, but are you after something like this?
x = -5:5
p = [3 2 4]
y = p(1)
for k=2:numel(p),
y = y + p(k) * x.^(k-1) % you can change this to another formula f(k,p(k),x)
end

Patrick Allaglo
Patrick Allaglo el 13 de Dic. de 2013
Hey again :D I have a little question, how can i save data from a loop with a variable evolving between -5 to 5 for example, because when I try to save data by using variable_stored, it says that i have to use positive integer or logical...
  1 comentario
Simon
Simon el 13 de Dic. de 2013
Make a table like
tt = -5:5;
Access your variable with index -3 like
V(tt==-3)

Iniciar sesión para comentar.

Categorías

Más información sobre Polynomials en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by