2017-12-12 20 views
0

을 감안할 때 : n 입력은 사용자입니다MATLAB에서 임의의 다항식을 합하는 방법은 무엇입니까?

y=[y(1),y(2),...,y(n)] 

, 그리고 : m가 입력 사용자가 또한

x=[x(1),x(2),...,x(n)] 

a=[a0,a1,...,am]=[a(1),a(2),...,a(m+1)] 

, 그때 내가 계산해야합니다

y(p) = a0*x(p)^0 + a1*x(p)^1 + a2*x(p)^2 + ... + am*x(p)^m 

y(p) = a(1)*x(p)^0 + a(2)*x(p)^1 + a(3)*x(p)^2 + ... + a(m+1)*x(p)^m. 

y의 각 요소는 0123을 사용하여 m, y=a0+a1x+a2x^2+...+amx^m의 다항식입니다.thx 값은 pthy 값입니다. 요약 표기법에서

:

y(p) = **sum** (from q=0 to m) **[a(q+1)*x(p)^q]** 

내가 MATLAB에서이 시리즈를 요약하는 방법을 모르겠어요. 어떤 도움이라도 대단히 감사하겠습니다!

편집 :

나는, 예를 들어, 다음으로 y(2)y(p)의 각 값을 평가하기 위해 시도했습니다

syms q a x 
f=a(q+1)*x(2)^q 
y(2) = symsum(f, q, 0, m) 

그러나이 오류 Invalid indexing or function definition를 반환합니다. 코드가 그리 설명 경우

+0

정확히이 시리즈를 합치는 데 어려움이 있습니까? 이것을 코딩하려고 시도 했습니까? 그렇다면 어디에서 실패할까요? 우리에게 [mcve]를 줄 수 있니? – beaker

+0

게시물을 수정했습니다. – John

답변

0

에 설명하는 이유가

y = polyval(flip(a(1:(m+1)), 2), x(1:n)); 

: 다항식 계수의 M - 요소 행 벡터로 정의 된 값의 토르와 a는, 당신은 m+1 다항식 이용 xn 값의 하위 집합에 대한 귀하의 y 값을 계산하는 기능 polyval을 사용할 수 있습니다 polyval은 다항식 계수가 최고 전력에서 최저 전력으로 정렬되기를 기대하므로 벡터 a(1:(m+1))의 순서는 flip을 사용하여 뒤집어 져야합니다.

0

코드는 내가 MATLAB의 기초를 (행렬이 어떻게 MATLAB에서 그들과 거래를하기 위해 무엇을)

학습하는 것이 좋습니다, meshgrid 기능이 핵심 역할을이 코드에 완전히 설명입니다
% Inputs , for example x=[1,2,3,..,10] and a=[5,6,7,8] 

x=1:10 
a=[5,6,7,8] 

% m <= length(a) 

m=3 

% temporary matrices 

[tx,ta] = meshgrid(x,a) 
[~,tm]=meshgrid(x,0:m) 
t=ta(1:m+1,:).*tx(1:m+1,:).^tm(1:m+1,:) 

% y is your result and has equal elemnts to x matrix 

y=sum(t,1) 

% some outputs 

y(2) 
y(3) 

끄트머리는 해당 한 오류는 xN - 요소 행 VEC로 정의한 경우 [https://stackoverflow.com/a/47782904/6478645]