Creating a polyval function

21 vues (au cours des 30 derniers jours)
Patrick Allaglo
Patrick Allaglo le 13 Déc 2013
Modifié(e) : ledinh lam le 27 Nov 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 commentaire
raviraja
raviraja le 13 Déc 2013
Same Problem Here... Need Answer

Connectez-vous pour commenter.

Réponse acceptée

Simon
Simon le 13 Déc 2013
Hi!
But you can use polyval with just p and x!
  3 commentaires
Simon
Simon le 13 Déc 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 le 13 Déc 2013
Well i just tried something and it works (with your loop suggestion :)) Thx

Connectez-vous pour commenter.

Plus de réponses (4)

Azzi Abdelmalek
Azzi Abdelmalek le 13 Déc 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 commentaire
Patrick Allaglo
Patrick Allaglo le 13 Déc 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. :)

Connectez-vous pour commenter.


ledinh lam
ledinh lam le 27 Nov 2016
Modifié(e) : ledinh lam le 27 Nov 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) le 13 Déc 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 le 13 Déc 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 commentaire
Simon
Simon le 13 Déc 2013
Make a table like
tt = -5:5;
Access your variable with index -3 like
V(tt==-3)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Polynomials dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by