我有系数向量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
答案 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)
据我了解,您希望v
和x
都作为函数的输入,并获取值。然后你必须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