Sie sind auf Seite 1von 11

GOVT ENGG COLLEGE AJMER

MECHANICAL DEPARTMENT
COMPUTER ORIENTED NUMERICAL METHODS
LAB MANUAL
INDEX:1)
2)
3)
4)
5)
6)
7)
8)
9)

NEWTON BACKWARD DIFFERENCE METHOD


NEWTON FORWARD DIFFERENCE METHOD
LANGRANGES INTERPOLATION
CURVE FITTING: y= A*e^Bx
NEWTON-RAPHSON METHOD
PARABOLIC EQUATION (y = Ax^2 + Bx + C)
CURVE FITTING: y = A*B^x
CURVE FITTING: y = A*x^B
TRAPEZOIDAL METHOD

NEWTON'S BACKWARD DIFFERENCE METHOD


clc;
clear all;
close all;
fprintf('\n*** Interpolation by Newtons Backward Difference Formula ***');
fprintf('\n************************************************************');
n = input('\nEnter number of data points = ');
h = input('\nEnter step size (h) = ')
x(1) = input('\nx0 = ');
y(1) = input('y0 = ');
for i=2:n
x(i)=x(i-1)+h;
fprintf('\nX%d = %f',i,x(i));
fprintf('\t\tY%d: ',i);
y(i) = input('');
end
x_reqd = input('\nEnter X for which value of Y is sought: ');
s=(x_reqd-x(n))/h;
for i=1:n
diff(i,1)=y(i);
end
%% Calculate Backward Differance Table
for j=2:n
for i=n:-1:j
diff(i,j)=diff(i,j-1)-diff(i-1,j-1);
end
end
%% Print Backward Differance Table
fprintf('\n\tX\t Backward Differance Table');
for i=1:n
fprintf('\n %.3f',x(i));
for j=1:i
fprintf('\t%.3f',diff(i,j));
end
end
ans=y(n);
for i=1:n-1
term=1;
for j=1:i
term=term*(s+j-1)/j;
end
ans=ans+term*diff(n,i+1);
end
fprintf('\nValue of Y at(X=%f) = %f',x_reqd,ans);

NEWTON FORWARD DIFFERENCE METHOD


clc;
clear all;
close all;
fprintf('\n*** Interpolation by Newtons Forward Difference Formula ***');
fprintf('\n************************************************************');
n = input('\nEnter number of data points = ');
h = input('\nEnter step size (h) = ')
x(1) = input('\nx0 = ');
y(1) = input('y0 = ');
for i=2:n
x(i)=x(i-1)+h;
fprintf('\nX%d = %f',i,x(i));
fprintf('\t\tY%d: ',i);
y(i) = input('');
end
x_reqd = input('\nEnter X for which value of Y is sought: ');
s=(x_reqd-x(1))/h;
for i=1:n
diff(i,1)=y(i);
end
%% Calculate Forward Differance Table
for j=2:n
for i=1:n-j+1
diff(i,j)=diff(i+1,j-1)-diff(i,j-1);
end
end
%% Print Forward Differance Table
fprintf('\n\tX\t
Forward Differance Table');
for i=1:n
fprintf('\n %.4f',x(i));
for j=1:n-i+1
fprintf('\t%.4f',diff(i,j));
end
end
ans=y(1);
for i=1:n-1
term=1;
for j=1:i
term=term*(s+j-1)/j;
end
ans=ans+term*diff(1,i+1);
end
fprintf('\n\n\n Value of Y at(X=%f) = %f',x_reqd,ans);

Langrange's Interpolation
clc;
clear all;
close all;
fprintf('\n*************** LANGRANGES INTERPOLATION *****************');
fprintf('\n**********************************************************');
n = input('\n Enter no. of data points (n) = ');
for i=1:n
fprintf('\n X(%d)=',i);
x(i)=input('');
fprintf('Y(%d)=',i);
y(i)=input('');
end
xg=input('\n Enter Xg for which yg is required = ');
yg=0;
for i=1:n
Lx(i)=1;
for j=1:n
if i~=j
Lx(i)=Lx(i)*(xg-x(j))/(x(i)-x(j));
end
end
yg=yg+Lx(i)*y(i);
end
%% Print Lx(i) values
fprintf('\n Lx(i) table>>>');
for i=1:n
fprintf('\n Lx(%d) = %f',i,Lx(i));
end
fprintf('\n\n Yg = %f at Xg = %f',yg,xg);

CURVEFITTING:
clc;
closeall;
clear all;
%%CURVEFITTING
%% LEAST SQUARE CRITERION FOR EQUATION (y = A*e^Bx)

fprintf('\n*****************CURVEFITTING:y=A*e^Bx****************');
fprintf('\n************************************************************');
n=input('\nEnterNo.ofDATAPOINTS(n):');
sumx =0;
sumY =0;
sumxY=0;
sumx2 = 0;
% Type of Equation>>>y=A* e^B x
%There for taking log on both sides ,we sget>>>log(y)=log(A)+Bx.log(e)
% i.e log(y)=log(A)+Bx, then, Y=Bx+C, where Y=log(y), C=log(A)
for i = 1:n
fprintf('\n Point#%d >>>',i);
x(i) = input('\nX = ');
y(i) = input('\nY = ');
Y(i) = log(y(i));
sumx = sumx + x(i);
sumY = sumY + Y(i);
sumx2 = sumx2 + x(i)*x(i);
sumxY = sumxY + x(i)*Y(i);
end
fprintf('\n sumx = %f',sumx);
fprintf('\n sumY = %f',sumY);
fprintf('\n sumxY = %f',sumxY);
fprintf('\n sumx2 = %f',sumx2);
A = [sumx n; sumx2 sumx];
%% Coefficient Matrix
B = [sumY; sumxY];
%% Solution Matrix
C = inv(A)*B;
%% Solutions of A and B
A = exp(C(2));
B = C(1);
fprintf('\n Equation of Curve>>> y = (%.4f)*e^(%.4fx)',A,B);
% Plotting the Actual Data and by Least Square Criteria
for i=1:n
ya(i)=A*exp(B*x(i));
end
hold on
xlabel('x');
ylabel('y');
title('Least Square Criteria');
plot(x,y,'*','LineWidth',2,'Color',[1 0 0]);
plot(x,ya,'--','LineWidth',2,'Color',[0 0 0]);

NEWTON-RAPHSON METHOD
clc;
close all;
clear all;

% Numerical integration
% TRAPEZOIDAL METHOD
fprintf('\n************************************************************');
fprintf('\n******************* ROOTS OF EQUATION **********************');
fprintf('\n***************** NEWTON-RAPHSON METHOD ********************');
fprintf('\n************************************************************');
fstr = input('\n Input Function String f(x) >>> ','s');
f=inline(fstr);
% Function Declaration
disp(sprintf(['\n
y = f(x) = ' fstr]));
fstr1 = input('\n Input (dy/dx) = g(x) >>> ','s');
f1=inline(fstr1);
% Function Declaration
disp(sprintf(['\n
(dy/dx) = g(x) = ' fstr1]));
x0 = input('\n Input Initial Guess Value of Root = ');
acc = input('\n Input Accuracy = ');
x1=x0-f(x0)/f1(x0);
while abs(x1-x0)>=acc
x0=x1;
x1=x0-f(x0)/f1(x0);
fprintf('\n Root = %f',x1);
end

Parabolic Equations
clc;
close all;
clear all;
%% CURVE FITTING
%% LEAST SQUARE CRITERION FOR PARABOLIC EQUATION (y = Ax^2 + Bx + C)
fprintf('\n********** CURVE FITTING: PARABOLIC EQUATION ***************');
n = input('\n\n Enter No. of DATA POINTS (n): ');
sumx = 0;
sumy = 0;
sumxy = 0;

sumx2 = 0;
sumx3 = 0;
sumx2y = 0;
sumx4 = 0;
for i = 1:n
fprintf('\n Point#%d >>>',i);
x(i) = input('\nX = ');
y(i) = input('\nY = ');
sumx = sumx + x(i);
sumy = sumy + y(i);
sumx2 = sumx2 + x(i)*x(i);
sumxy = sumxy + x(i)*y(i);
sumx3 = sumx3 + x(i)*x(i)*x(i);
sumx2y = sumx2y + x(i)*x(i)*y(i);
sumx4 = sumx4 + x(i)*x(i)*x(i)*x(i);
end
fprintf('\n sumx = %.2f',sumx);
fprintf('\t sumy = %.2f',sumy);
fprintf('\t sumxy = %.2f',sumxy);
fprintf('\t sumx2 = %.2f',sumx2);
fprintf('\n sumx3 = %.2f',sumx3);
fprintf('\t sumx2y = %.2f',sumx2y);
fprintf('\t sumx4 = %.2f',sumx4);
A = [sumx2 sumx n; sumx3 sumx2 sumx; sumx4 sumx3 sumx2];
%% Coefficient
Matrix
B = [sumy; sumxy; sumx2y];
%% Solution Matrix
C = inv(A)*B;
%% Solutions of A, B, C
fprintf('\n\n Equation of Curve>>> y = (%.4f)x^2 + (%.4f)x + (%.4f) ',C(1),C(2),C(3));
% Plotting the Actual Data and by Least Square Criteria
for i=1:n
ya(i)= C(1)*x(i)*x(i)+C(2)*x(i)+C(3);
end
hold on
xlabel('x');
ylabel('y');
title('Least Square Criteria');
plot(x,y,'*','LineWidth',2,'Color',[1 0 0]);
plot(x,ya,'-','LineWidth',2,'Color',[0 0 0]);
Power Equation: Type y=a.b^x
clc;
closeall;
clear all;
%%CURVEFITTING
%% LEAST SQUARE CRITERION FOR EQUATION (y = A*B^x)
fprintf('\n***************** CURVE FITTING: y = A*B^x
****************');
n = input('\n Enter No. of DATA POINTS (n): ');
sumx = 0;

sumY = 0;
sumxY = 0;
sumx2 = 0;
% Type of Equation>>> y = A*B^x
% Therefor taking log on both sides, we get>>> log(y)=log(A)
+x.log(B)
% i.e log(y)=log(A)+x.log(B), then, Y=Px+Q, where P=log(B),
Q=log(A)
for i = 1:n
fprintf('\n Point#%d >>>',i);
x(i) = input('\nX = ');
y(i) = input('\nY = ');
Y(i) = log10(y(i));
sumx = sumx + x(i);
sumY = sumY + Y(i);
sumx2 = sumx2 + x(i)*x(i);
sumxY = sumxY + x(i)*Y(i);
end
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n

sumx = %f',sumx);
sumY = %f',sumY);
sumxY = %f',sumxY);
sumx2 = %f',sumx2);

A = [sumx n; sumx2 sumx];


%% Coefficient Matrix
B = [sumY; sumxY];
%% Solution Matrix
C = inv(A)*B;
%% Solutions of A and B
A = power(10,C(2));
B = power(10,C(1));
fprintf('\n Equation of Curve>>> y = (%.4f)*(%.4f)^x',A,B);
% Plotting the Actual Data and by Least Square Criteria
for i=1:n
ya(i)=A*power(B,x(i));
end
hold on
xlabel('x');
ylabel('y');
title('Least Square Criteria');
plot(x,y,'*','LineWidth',2,'Color',[1 0 0]);
plot(x,ya,'--','LineWidth',2,'Color',[0 0 0]);
Power Equation: Type y=a.x^b
clc;
close all;
clear all;
%% CURVE FITTING
fprintf('\n***************** CURVE FITTING: y = A*x^B
****************');
fprintf('\n***********************************************************

*');
n = input('\n Enter No. of DATA POINTS (n): ');
sumX = 0;
sumY = 0;
sumXY = 0;
sumX2 = 0;
% Type of Equation>>> y = A*x^B
% Therefor taking log on both sides, we get>>> log(y)=log(A)
+B.log(x)
% i.e log(y)=log(A)+B.log(x), then, Y=BX+A', where Y=log(y) and X
= log(x)
for i = 1:n
fprintf('\n Point#%d >>>',i);
x(i) = input('\nX = ');
X(i) = log10(x(i));
y(i) = input('\nY = ');
Y(i) = log10(y(i));
sumX = sumX + X(i);
sumY = sumY + Y(i);
sumX2 = sumX2 + X(i)*X(i);
sumXY = sumXY + X(i)*Y(i);
end
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n

sumx = %f',sumX);
sumY = %f',sumY);
sumxY = %f',sumXY);
sumx2 = %f',sumX2);

A = [sumX n; sumX2 sumX];


%% Coefficient Matrix
B = [sumY; sumXY];
%% Solution Matrix
C = inv(A)*B
%% Solutions of A and B
a = power(10,C(2));
b = C(1);
fprintf('\n Equation of Curve>>> y=(%f)*x^(%f)',a,b);
% Plotting the Actual Data and by Least Square Criteria
for i=1:n
ya(i)=a*power(x(i),b);
end
hold on
xlabel('x');
ylabel('y');
title('Least Square Criteria');
plot(x,y,'*','LineWidth',2,'Color',[1 0 0]);
plot(x,ya,'--','LineWidth',2,'Color',[0 0 0]);
TRAPEZOIDAL METHOD

clc;
close all;

clear all;
% Numerical integration
% TRAPEZOIDAL METHOD
fprintf('\n******************* NUMERICAL INTEGRATION ******************');
fprintf('\n********************* TRAPEZOIDAL METHOD *******************');
fprintf('\n************************************************************');
fstr = input('\n Input Function String f(x) >>> ','s');
f=inline(fstr);
% Function Declaration
disp(sprintf(['\n
y = f(x) = ' fstr]));
x(1) = input('\n Enter Lower Limit (x0): ');
xn = input('\n Enter Upper Limit (xn): ');
n = input('\n Enter No. of Steps (n): ');
h = (xn-x(1))/n
area = 0;
for i = 1:n
x(i+1) = x(i) + h;
x(i+2) = x(i) + 2*h;
area = area + (h/3)*(f(x(i))+4*f(x(i+1))+f(x(i+2)));
fprintf('\n\t Area after %dth Strip >>> %f', i, area);
end
for i=1:n
y(i)=f(x(i));
end
% Plotting the Approximate solution of the ODE.
hold on
xspan = [x(1) xn];
xlabel('STRIP NUMBER');
ylabel('Y');
plot(y,'Color',[1 0 0]);
legend('GIVEN CURVE');

Das könnte Ihnen auch gefallen