创建一个多项式matlab

时间:2014-01-18 10:25:59

标签: matlab matlab-figure matlab-guide polynomial-math

我有系数向量v = [v1,v2,v3](由用户添加)。 我想在函数中创建一个多项式。我想有一个函数fun(x),哪个解决方案将是我的多项式。之后我想要一个这个多项式的图。 这是我的想法,但它不起作用。你有什么想法可以改进吗?

function [v] = createPolynomial(x)

r = length(v);
fun=0;
for i=r:1
    fun=fun+v(i)*x.^(r-1); 

end

2 个答案:

答案 0 :(得分:0)

你很亲密!这是你想要的吗?

function f = createPoly(v,x)
n = length(v);
f = 0;
for ii = 1:n
    f = f + v(ii)*x.^(n-ii+1);
end
end

f = createPoly([1 2 3 5],4)
f =
   113
    %% (1*4^3) + (2*4^2) + (3*4^1) + (5*4^0) = 113

代码中的一些错误:

function [v] = createPolynomial(x)

据我了解,您希望vx都作为函数的输入,并获取值。然后你必须function value = createPolynomial(v, x),其中value将是输出变量。

fun=fun+v(i)*x.^(r-1); 

我想这只是一个错字,但.^r-1是一个常数值。您可能希望指数来自n, n-1, ... 1, 0在这种情况下,您需要r-i。如果我不指出它,其他人肯定会这样做:如果你有时处理复数,那么在MATLAB中使用i作为变量并不是一个好习惯。

我想你知道这一点,但无论如何我都会这样说:你的m文件必须与你的功能相同。

如果您想将x作为向量输入,则必须将f初始化为与x长度相同的向量。那就是:

f = zeros(1,length(x));

现在,你可以这样做:

f = createPoly([1 2 3 5],1:5)
f =   
    11
    27
    59
   113
   195

答案 1 :(得分:0)

您可以使用以下形式的变量p

定义系数

%示例:           p = [2 1 3]%系数

      x=0:0.2:5; % values at which it is to be evaluated
      y=polyval(p, x);
      plot(x,y)

polyval在标准matlab中提供,它评估多项式。请参阅帮助polyval