메이플에 프로 시저를 쓰려면 함수 f를 사용하지 않고 [-1..1] 간격으로 차수 n의 Chebyshev 다항식으로 근사 할 것입니다. Chebyshev 다항식과 관련된 내장 된 Maple 함수. http://en.wikipedia.org/wiki/Chebyshev_polynomials메이플 프로 시저에 대한 도움을 찾고 있는데
예를 들어 CPlot (f, [2,3,4])가 다른 색상의 [-1, 1]과 함께 함수 f의 플롯을 생성하도록하는 절차 CPlot , 그것의 제 2, 제 3 및 제 4 Chebychev 근사. 두 번째 인수로 임의의 길이의 임의의 목록에 대해 작동해야합니다. 이것은 나의 현재 코드이다
ChebT := proc(n,x)
local i,firstT,secondT,generalT;
firstT := 1;
if n=0 then return firstT end if;
secondT := x;
if n=1 then return secondT end if;
for i from 1 to n-1 do
generalT := 2*x*secondT - firstT;
firstT := secondT;
secondT := generalT;
end do;
return expand(secondT)
end proc:
CPlot:=proc(f,L::list)
local j, K,num_ip,num_prj,c,chb;
K:=f(x);
for j from 1 to nops(L) while j<(nops(L)+1) do
num_ip := (f,g) -> evalf(Int(f*g/sqrt(1-x^2),x=-1..1)*2/Pi);
num_prj := (f,n) -> seq(num_ip(f,ChebT(i,x)),i=0..n);
c := num_prj(f(x),L[j]);
chb := c -> c[1]/2 + sum(c[i]*ChebT(i-1,x),i=2..nopc(c)); *
K:=K, chb([c]);
end do;
plot([K], x=-1..1, colour=[green, red, blue, yellow],linestyle=[1,2,3,4], thickness=[5,2,3,4]);
end proc:
시도 :
F = X-> X^2
ChebyPlot (F를, [2,5,10]);
내가 줄에 "(ChebT에서) 오류, 루프가 숫자 또는 문자 여야 위해에 최종 값을"GET *
내가 orthopoly (로 호출하여, 체비 쇼프 다항식에 대한 기능 T에서 빌드를 사용하는 경우, T) 대신 ChebT 대신에 그래프를 사용합니다. 제안 사항이 있으십니까?
감사합니다 ... 작동합니다 ... 프로그램이 정확한 결과를 출력하는지/Chebychev approximations에 대한 음모를 확인할 수있는 방법이 있습니까? – Stefan