Creating a polyval function

5 ビュー (過去 30 日間)
Patrick Allaglo
Patrick Allaglo 2013 年 12 月 13 日
編集済み: ledinh lam 2016 年 11 月 27 日
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 件のコメント
raviraja
raviraja 2013 年 12 月 13 日
Same Problem Here... Need Answer

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

採用された回答

Simon
Simon 2013 年 12 月 13 日
Hi!
But you can use polyval with just p and x!
  3 件のコメント
Simon
Simon 2013 年 12 月 13 日
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 2013 年 12 月 13 日
Well i just tried something and it works (with your loop suggestion :)) Thx

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

その他の回答 (4 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 12 月 13 日
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 件のコメント
Patrick Allaglo
Patrick Allaglo 2013 年 12 月 13 日
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. :)

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


ledinh lam
ledinh lam 2016 年 11 月 27 日
編集済み: ledinh lam 2016 年 11 月 27 日
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) 2013 年 12 月 13 日
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 2013 年 12 月 13 日
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 件のコメント
Simon
Simon 2013 年 12 月 13 日
Make a table like
tt = -5:5;
Access your variable with index -3 like
V(tt==-3)

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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by