목차
1.Newton보간법
2.Lagrange보간법
3.소스코드
2.Lagrange보간법
3.소스코드
본문내용
^2+x+5;
x=x3; fx3=x^3-x^2+x+5;
x=x4; fx4=x^3-x^2+x+5;
a1=fx1;
a2=(fx2-fx1)/(x2-x1);
a3=((fx3-fx2)/(x3-x2)-(fx2-fx1)/(x2-x1))/(x3-x1);
a4=(((fx4-fx3)/(x4-x3)-(fx3-fx2)/(x3-x2))/(x4-x2)-((fx3-fx2)/(x3-x2)-(fx2-fx1)/(x2-x1))/(x3-x1))/(x4-x1);
b1=a1; % 상수 -
b2=a2; % 1차 -
b3=a2*(-x1); % 상수 -
b4=a3; % 2차 -
b5=a3*((-x1)+(-x2)); % 1차 -
b6=a3*(-x1)*(-x2); % 상수 -
b7=a4; % 3차 -
b8=a4*((-x1)+(-x2)+(-x3)); % 2차 -
b9=a4*(((-x1)+(-x2))*(-x3)+((-x1)*(-x2))); % 1차 -
b10=a4*((-x1)*(-x2)*(-x3)); % 상수 -
c1=b7; % 3차 의 3차 종합
c2=b4+b8; % 3차 의 2차 종합
c3=b2+b5+b9; % 3차 의 1차 종합
c4=b1+b3+b6+b10; % 3차 의 상수 종합
d1=b4; % 2차 의 2차 종합
d2=b2+b5; % 2차 의 1차 종합
d3=b1+b3+b6; % 2차 의 상수 종합
e1=b2; % 1차 의 1차 종합
e2=b1+b3; % 1차 의 상수 종합
fprintf(' Newton 보간법 \n ' )
fprintf('f1(x)=(%2.4f) x + (%2.4f) \n f2(x)=(%2.4f) x^2 + (%2.4f) x + (%2.4f) \n f3(x)=(%2.4f) x^3 + (%2.4f) x^2 + (%2.4f) x + (%2.4f) \n\n',e1,e2,d1,d2,d3,c1,c2,c3,c4)
%----------------------------------------(#9-1)----Lagrange----------------
% Newton 보간법 까지 합쳐진 소스입니다.
% Newton 보간법까지 드래그 부탁드립니다.
% 즉, 여기에 필요한 성분은 위 Newton 보간법 함수에서 지정되어 있습니다.
% 위 Newton 보간법에서부터 드레그 후 F9번을 눌러주세요.
a1=((fx1)/(x1-x2))+((fx2)/(x2-x1)); % 1차 의 1차
a2=(((-x2)*(fx1))/(x1-x2))+(((-x1)*(fx2))/(x2-x1)); % 1차 의 상수
a3=((fx1)/((x1-x2)*(x1-x3)))+((fx2)/((x2-x1)*(x2-x3)))+((fx3)/((x3-x1)*(x3-x2))); % 2차 의 2차
a4=((((-x2)+(-x3))*(fx1))/((x1-x2)*(x1-x3)))+((((-x1)+(-x3))*(fx2))/((x2-x1)*(x2-x3)))+((((-x1)+(-x2))*(fx3))/((x3-x1)*(x3-x2))); % 2차 의 1차
a5=((((-x2)*(-x3))*(fx1))/((x1-x2)*(x1-x3)))+((((-x1)*(-x3))*(fx2))/((x2-x1)*(x2-x3)))+((((-x1)*(-x2))*(fx3))/((x3-x1)*(x3-x2))); % 2차 의 상수
a6=((fx1)/((x1-x2)*(x1-x3)*(x1-x4)))+((fx2)/((x2-x1)*(x2-x3)*(x2-x4)))+((fx3)/((x3-x1)*(x3-x2)*(x3-x4)))+((fx4)/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 3차
a7=((((-x2)+(-x3)+(-x4))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((-x1)+(-x3)+(-x4))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((-x1)+(-x2)+(-x4))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((-x1)+(-x2)+(-x3))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 2차
a8=((((((-x2)+(-x3))*(-x4))+((-x2)*(-x3)))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((((-x1)+(-x3))*(-x4))+((-x1)*(-x3)))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((((-x1)+(-x2))*(-x4))+((-x1)*(-x2)))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((((-x1)+(-x2))*(-x3))+((-x1)*(-x2)))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 1차
a9=((((-x2)*(-x3)*(-x4))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((-x1)*(-x3)*(-x4))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((-x1)*(-x2)*(-x4))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((-x1)*(-x2)*(-x3))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 상수
fprintf(' Lagrange 보간법 \n ' )
fprintf('f1(x)=(%2.4f) x + (%2.4f) \n f2(x)=(%2.4f) x^2 + (%2.4f) x + (%2.4f) \n f3(x)=(%2.4f) x^3 + (%2.4f) x^2 + (%2.4f) x + (%2.4f) \n',a1,a2,a3,a4,a5,a6,a7,a8,a9)
%---------------------------------------(#9-2)-----------------------------
clear all
clc
x=-1.5
y=x.^3 - x.^2 + x + 5 % 지정식
y1=11*x + 13 % 1차보간식
y2=-3 * x.^2 + 2*x + 7 % 2차보간식
y3=x.^3 - x.^2 + x + 5 % 3차보간식
y-y1 % 1차보간식과 지정식의 차이
y-y2 % 2차보간식과 지정식의 차이
y-y3 % 3차보간식과 지정식의 차이
x=x3; fx3=x^3-x^2+x+5;
x=x4; fx4=x^3-x^2+x+5;
a1=fx1;
a2=(fx2-fx1)/(x2-x1);
a3=((fx3-fx2)/(x3-x2)-(fx2-fx1)/(x2-x1))/(x3-x1);
a4=(((fx4-fx3)/(x4-x3)-(fx3-fx2)/(x3-x2))/(x4-x2)-((fx3-fx2)/(x3-x2)-(fx2-fx1)/(x2-x1))/(x3-x1))/(x4-x1);
b1=a1; % 상수 -
b2=a2; % 1차 -
b3=a2*(-x1); % 상수 -
b4=a3; % 2차 -
b5=a3*((-x1)+(-x2)); % 1차 -
b6=a3*(-x1)*(-x2); % 상수 -
b7=a4; % 3차 -
b8=a4*((-x1)+(-x2)+(-x3)); % 2차 -
b9=a4*(((-x1)+(-x2))*(-x3)+((-x1)*(-x2))); % 1차 -
b10=a4*((-x1)*(-x2)*(-x3)); % 상수 -
c1=b7; % 3차 의 3차 종합
c2=b4+b8; % 3차 의 2차 종합
c3=b2+b5+b9; % 3차 의 1차 종합
c4=b1+b3+b6+b10; % 3차 의 상수 종합
d1=b4; % 2차 의 2차 종합
d2=b2+b5; % 2차 의 1차 종합
d3=b1+b3+b6; % 2차 의 상수 종합
e1=b2; % 1차 의 1차 종합
e2=b1+b3; % 1차 의 상수 종합
fprintf(' Newton 보간법 \n ' )
fprintf('f1(x)=(%2.4f) x + (%2.4f) \n f2(x)=(%2.4f) x^2 + (%2.4f) x + (%2.4f) \n f3(x)=(%2.4f) x^3 + (%2.4f) x^2 + (%2.4f) x + (%2.4f) \n\n',e1,e2,d1,d2,d3,c1,c2,c3,c4)
%----------------------------------------(#9-1)----Lagrange----------------
% Newton 보간법 까지 합쳐진 소스입니다.
% Newton 보간법까지 드래그 부탁드립니다.
% 즉, 여기에 필요한 성분은 위 Newton 보간법 함수에서 지정되어 있습니다.
% 위 Newton 보간법에서부터 드레그 후 F9번을 눌러주세요.
a1=((fx1)/(x1-x2))+((fx2)/(x2-x1)); % 1차 의 1차
a2=(((-x2)*(fx1))/(x1-x2))+(((-x1)*(fx2))/(x2-x1)); % 1차 의 상수
a3=((fx1)/((x1-x2)*(x1-x3)))+((fx2)/((x2-x1)*(x2-x3)))+((fx3)/((x3-x1)*(x3-x2))); % 2차 의 2차
a4=((((-x2)+(-x3))*(fx1))/((x1-x2)*(x1-x3)))+((((-x1)+(-x3))*(fx2))/((x2-x1)*(x2-x3)))+((((-x1)+(-x2))*(fx3))/((x3-x1)*(x3-x2))); % 2차 의 1차
a5=((((-x2)*(-x3))*(fx1))/((x1-x2)*(x1-x3)))+((((-x1)*(-x3))*(fx2))/((x2-x1)*(x2-x3)))+((((-x1)*(-x2))*(fx3))/((x3-x1)*(x3-x2))); % 2차 의 상수
a6=((fx1)/((x1-x2)*(x1-x3)*(x1-x4)))+((fx2)/((x2-x1)*(x2-x3)*(x2-x4)))+((fx3)/((x3-x1)*(x3-x2)*(x3-x4)))+((fx4)/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 3차
a7=((((-x2)+(-x3)+(-x4))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((-x1)+(-x3)+(-x4))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((-x1)+(-x2)+(-x4))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((-x1)+(-x2)+(-x3))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 2차
a8=((((((-x2)+(-x3))*(-x4))+((-x2)*(-x3)))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((((-x1)+(-x3))*(-x4))+((-x1)*(-x3)))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((((-x1)+(-x2))*(-x4))+((-x1)*(-x2)))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((((-x1)+(-x2))*(-x3))+((-x1)*(-x2)))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 1차
a9=((((-x2)*(-x3)*(-x4))*(fx1))/((x1-x2)*(x1-x3)*(x1-x4)))+((((-x1)*(-x3)*(-x4))*(fx2))/((x2-x1)*(x2-x3)*(x2-x4)))+((((-x1)*(-x2)*(-x4))*(fx3))/((x3-x1)*(x3-x2)*(x3-x4)))+((((-x1)*(-x2)*(-x3))*(fx4))/((x4-x1)*(x4-x2)*(x4-x3))); % 3차 의 상수
fprintf(' Lagrange 보간법 \n ' )
fprintf('f1(x)=(%2.4f) x + (%2.4f) \n f2(x)=(%2.4f) x^2 + (%2.4f) x + (%2.4f) \n f3(x)=(%2.4f) x^3 + (%2.4f) x^2 + (%2.4f) x + (%2.4f) \n',a1,a2,a3,a4,a5,a6,a7,a8,a9)
%---------------------------------------(#9-2)-----------------------------
clear all
clc
x=-1.5
y=x.^3 - x.^2 + x + 5 % 지정식
y1=11*x + 13 % 1차보간식
y2=-3 * x.^2 + 2*x + 7 % 2차보간식
y3=x.^3 - x.^2 + x + 5 % 3차보간식
y-y1 % 1차보간식과 지정식의 차이
y-y2 % 2차보간식과 지정식의 차이
y-y3 % 3차보간식과 지정식의 차이