Как использовать выходные переменные функции в качестве входных данных для другой функции

Я хотел бы использовать выходные данные функции в качестве входных данных для функции, которая строит полином:

вот мой код:

function c = interpolation(x, y)
    n = length(x);
    V = ones(n);
    for j = 2:n
         V(:,j)  = x.*V(:,j-1);
    end
     c = V \ y;
     disp(V) 
    for i = 0:n-1
      fprintf('c%d= %.3f\n', i, c(i+1));
    end

     polynome(c);
     function p = polynome(x)
         n = length(x);
         for l= 0:n-1
             polynome = polynome * x^l;
         end
     end

Первая функция одна, работает. Это означает, что мой код работает, если я комментирую, начиная со строки 13 до конца, и получаю значения c, число которых зависит от длины введенного вектора x в начале.

Я хочу использовать эти значения c, чтобы построить полином этой формы: p(x) = c0 + c^1*x1 + c2^x2 + .... + c(n-1)^x(n-1) и вычерчиваем этот многочлен с точками asi xi,yi, заданными в начале через 2 вектора в качестве входных данных интерполяции функции.

Может ли кто-нибудь помочь мне здесь?

1 ответ

Сделать отдельный полином функции, например

function y=polynome(x,c)
  y=sum(c.*x.^(0:length(c)-1));

или просто использовать

y=sum(c.*x.^(0:length(c)-1)); 

вычислить полином для ваших коэффициентов c.

Если у вас есть несколько значений х, например

x=[0:.1:3]';

y=repmat(x,1,numel(c)).^repmat((0:numel(c)-1),numel(x),1)*c';

должен дать вам значения полинома

Другие вопросы по тегам