MATLAB Solutions for Questions 1 to 40
Q1: Print "Hello World"
disp('Hello World');
Q2: Plot the graph of y = sin(x)
x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y);
xlabel('x'); ylabel('sin(x)');
title('Graph of y = sin(x)');
grid on;
Q3: Arithmetic Operations on Two Numbers
a = input('Enter first number: ');
b = input('Enter second number: ');
if b == 0
disp('Second number cannot be zero for division.');
else
fprintf('Addition: %f\n', a + b);
fprintf('Subtraction: %f\n', a - b);
fprintf('Multiplication: %f\n', a * b);
fprintf('Division: %f\n', a / b);
end
Q4: Calculate Average and Standard Deviation of an Array
arr = input('Enter an array: ');
avg = mean(arr);
std_dev = std(arr);
fprintf('Average: %f\n', avg);
fprintf('Standard Deviation: %f\n', std_dev);
Q5: Convert Temperature from Celsius to Fahrenheit
C = input('Enter temperature in Celsius: ');
F = (C * 9/5) + 32;
fprintf('Temperature in Fahrenheit: %f\n', F);
Q6: Compute Factorial of a Number
n = input('Enter a non-negative number: ');
if n < 0
disp('Please enter a non-negative number.');
else
fact = prod(1:n);
fprintf('%d! = %d\n', n, fact);
end
Q7: Find Maximum Among Three Numbers
a = input('Enter first number: ');
b = input('Enter second number: ');
c = input('Enter third number: ');
max_num = max([a, b, c]);
fprintf('Maximum number is: %f\n', max_num);
Q8: Find Minimum Among Three Numbers
a = input('Enter first number: ');
b = input('Enter second number: ');
c = input('Enter third number: ');
min_num = min([a, b, c]);
fprintf('Minimum number is: %f\n', min_num);
Q9: Generate First 10 Fibonacci Numbers
n = 10;
fib = zeros(1, n);
fib(1) = 0;
fib(2) = 1;
for i = 3:n
fib(i) = fib(i-1) + fib(i-2);
end
disp('First 10 Fibonacci numbers:');
disp(fib);
Q10: Sum of First n Odd Numbers
n = input('Enter a number: ');
sum_odd = n^2;
fprintf('Sum of first %d odd numbers is: %d\n', n, sum_odd);
Q11: Check Leap Year
year = input('Enter a year: ');
if mod(year, 400) == 0 || (mod(year, 4) == 0 && mod(year, 100) ~= 0)
disp('Leap year');
else
disp('Not a leap year');
end
Q12: Check Prime Number
num = input('Enter a number: ');
if isprime(num)
disp('The number is prime.');
else
disp('The number is not prime.');
end
Q13: Sum of Series 1 + 1/2! + ... + 1/100!
sum_series = sum(arrayfun(@(x) 1/factorial(x), 1:100));
fprintf('Sum of the series: %f\n', sum_series);
Q14: Sum of Geometric Series
sum_series = 1 / (1 - 0.5);
fprintf('Sum of the series: %f\n', sum_series);
Q15: Numerical Integration using Trapezoidal Rule
f = @(x) exp(-x.^2);
a = 0; b = 1; n = 100;
x = linspace(a, b, n+1);
y = f(x);
trapz_result = trapz(x, y);
fprintf('Integral using Trapezoidal Rule: %f\n', trapz_result);
Q16: Find Root using Bisection Method
f = @(x) x^3 - x - 1;
a = 1; b = 2; tol = 1e-6;
while (b - a) / 2 > tol
c = (a + b) / 2;
if f(c) == 0
break;
elseif f(a) * f(c) < 0
b = c;
else
a = c;
end
end
fprintf('Root using Bisection Method: %f\n', c);
MATLAB Solutions for Questions 17 to 40
Q17: Solve x - 2 cos(x) = 0 using Regula-Falsi Method
f = @(x) x - 2 * cos(x);
a = 0; b = 1; tol = 1e-6;
while abs(f(b) - f(a)) > tol
c = (a * f(b) - b * f(a)) / (f(b) - f(a));
if f(c) == 0
break;
elseif f(a) * f(c) < 0
b = c;
else
a = c;
end
end
fprintf('Root using Regula-Falsi Method: %f\n', c);
Q18: Find the Square Root of a Number
N = input('Enter a number: ');
sqrt_N = sqrt(N);
fprintf('Square root of %f is %f\n', N, sqrt_N);
Q19: Solve x e^x - 2 = 0 using Newton-Raphson Method
f = @(x) x * exp(x) - 2;
df = @(x) exp(x) * (x + 1);
x0 = 0.5; tol = 1e-6;
while true
x1 = x0 - f(x0) / df(x0);
if abs(x1 - x0) < tol
break;
end
x0 = x1;
end
fprintf('Root using Newton-Raphson Method: %f\n', x1);
Q20: Bubble Sort Algorithm
arr = input('Enter an array: ');
n = length(arr);
for i = 1:n-1
for j = 1:n-i
if arr(j) > arr(j+1)
temp = arr(j);
arr(j) = arr(j+1);
arr(j+1) = temp;
end
end
end
disp('Sorted array: ');
disp(arr);
21- Matrix Operations (Addition, Subtraction, Multiplication)
A = input('Enter first matrix: ');
B = input('Enter second matrix: ');
fprintf('Matrix Addition:\n');
disp(A + B);
fprintf('Matrix Subtraction:\n');
disp(A - B);
fprintf('Matrix Multiplication:\n');
disp(A * B);
22-Newton-Forward Interpolation
x = input('Enter x values: ');
y = input('Enter y values: ');
xp = input('Enter x for which you need y: ');
n = length(x);
diff_table = zeros(n, n);
diff_table(:, 1) = y';
for j = 2:n
for i = 1:(n-j+1)
diff_table(i, j) = diff_table(i+1, j-1) - diff_table(i, j-1);
end
end
y_p = y(1);
u = (xp - x(1)) / (x(2) - x(1));
prod_u = 1; fact = 1;
for j = 2:n
prod_u = prod_u * (u - (j - 2));
fact = fact * (j - 1);
y_p = y_p + (prod_u / fact) * diff_table(1, j);
end
fprintf('Interpolated value of y at x = %f is %f\n', xp, y_p);
Q23: Newton-Backward Interpolation
x = input('Enter x values: ');
y = input('Enter y values: ');
xp = input('Enter x for which you need y: ');
n = length(x);
diff_table = zeros(n, n);
diff_table(:, 1) = y';
for j = 2:n
for i = 1:(n-j+1)
diff_table(i, j) = diff_table(i+1, j-1) - diff_table(i, j-1);
end
end
y_p = y(n);
u = (xp - x(n)) / (x(2) - x(1));
prod_u = 1; fact = 1;
for j = 2:n
prod_u = prod_u * (u + (j - 2));
fact = fact * (j - 1);
y_p = y_p + (prod_u / fact) * diff_table(n - j + 1, j);
end
fprintf('Interpolated value of y at x = %f is %f\n', xp, y_p);
Q24: Lagrange’s Interpolation
x = input('Enter x values: ');
y = input('Enter y values: ');
xp = input('Enter x for which you need y: ');
n = length(x);
y_p = 0;
for i = 1:n
term = y(i);
for j = 1:n
if i ~= j
term = term * (xp - x(j)) / (x(i) - x(j));
end
end
y_p = y_p + term;
end
fprintf('Interpolated value of y at x = %f is %f\n', xp, y_p);
Q25: Solve dy/dx = x^2 + y^2, y(0) = 1 using Euler’s Method
f = @(x, y) x^2 + y^2;
x0 = 0; y0 = 1;
h = 0.1; xn = 1;
n = (xn - x0) / h;
for i = 1:n
y1 = y0 + h * f(x0, y0);
x0 = x0 + h;
y0 = y1;
end
fprintf('Solution at x = %f is y = %f\n', x0, y0);
Q26: Solve using Runge-Kutta 2nd Order Method
f = @(x, y) x^2 + y^2;
x0 = 0; y0 = 1;
h = 0.1; xn = 1;
n = (xn - x0) / h;
for i = 1:n
k1 = h * f(x0, y0);
k2 = h * f(x0 + h, y0 + k1);
y0 = y0 + 0.5 * (k1 + k2);
x0 = x0 + h;
end
fprintf('Solution at x = %f is y = %f\n', x0, y0);
Q27: Solve using Runge-Kutta 4th Order Method
f = @(x, y) x^2 + y^2;
x0 = 0; y0 = 1;
h = 0.1; xn = 1;
n = (xn - x0) / h;
for i = 1:n
k1 = h * f(x0, y0);
k2 = h * f(x0 + h/2, y0 + k1/2);
k3 = h * f(x0 + h/2, y0 + k2/2);
k4 = h * f(x0 + h, y0 + k3);
y0 = y0 + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
x0 = x0 + h;
end
fprintf('Solution at x = %f is y = %f\n', x0, y0);
Q28: Solve using ode45
f = @(x, y) x^2 + y^2;
[x, y] = ode45(f, [0, 1], 1);
plot(x, y);
xlabel('x');
ylabel('y');
title('Solution using ode45');
grid on;
Q29: Solve dy/dx = y/x, y(1) = 1 using ode45
f = @(x, y) y / x;
[x, y] = ode45(f, [1, 2], 1);
plot(x, y);
xlabel('x');
ylabel('y');
title('Solution using ode45');
grid on;
Q30: Solve dy/dx = (y-x)/(y+x), y(0) = 1 using ode45
f = @(x, y) (y - x) / (y + x);
[x, y] = ode45(f, [0, 2], 1);
plot(x, y);
xlabel('x');
ylabel('y');
title('Solution using ode45');
grid on;
%% Q31: Solve dy/dx = (y-x)/(y+x), y(0) = 1 using ode45
f = @(x, y) (y - x) / (y + x);
[x, y] = ode45(f, [0, 2], 1);
plot(x, y);
xlabel('x'); ylabel('y'); title('Solution using ode45'); grid on;
%% Matrix Operations
A = input('Enter first matrix: ');
B = input('Enter second matrix: ');
fprintf('Matrix Addition:\n');
disp(A + B);
fprintf('Matrix Subtraction:\n');
disp(A - B);
fprintf('Matrix Multiplication:\n');
disp(A * B);
fprintf('Matrix Inversion (if square and non-singular):\n');
if size(A,1) == size(A,2) && det(A) ~= 0
disp(inv(A));
else
disp('Matrix A is not invertible');
end
%% Fibonacci numbers up to first 10 terms
n = 10;
fib = zeros(1, n);
fib(1) = 0;
fib(2) = 1;
for i = 3:n
fib(i) = fib(i-1) + fib(i-2);
end
disp('First 10 Fibonacci numbers:');
disp(fib);
%% Q32: Convert degrees to radians
deg = input('Enter angle in degrees: ');
rad = deg2rad(deg);
fprintf('Angle in radians: %f\n', rad);
%% Q33: Plot x^3 - 3x + 2
x = linspace(-3, 3, 100);
y = x.^3 - 3*x + 2;
plot(x, y);
xlabel('x'); ylabel('y'); title('Graph of x^3 - 3x + 2'); grid on;
%% Q34: Solve x log(x) - 1.2 = 0 using Bisection Method
f = @(x) x * log(x) - 1.2;
a = 1; b = 2; tol = 1e-6;
while (b - a) / 2 > tol
c = (a + b) / 2;
if f(c) == 0
break;
elseif f(a) * f(c) < 0
b = c;
else
a = c;
end
end
fprintf('Root: %f\n', c);
%% Q35: Solve x sin(x) - 2 = 0
f = @(x) x * sin(x) - 2;
root = fzero(f, 1);
fprintf('Root: %f\n', root);
%% Q36: Solve x log(x) - 1.2 = 0 using Regula-Falsi Method
f = @(x) x * log(x) - 1.2;
a = 1; b = 2; tol = 1e-6;
while abs(f(b) - f(a)) > tol
c = (a * f(b) - b * f(a)) / (f(b) - f(a));
if f(c) == 0
break;
elseif f(a) * f(c) < 0
b = c;
else
a = c;
end
end
fprintf('Root: %f\n', c);
%% Q37: Solve system of linear equations using Gauss-Elimination
A = input('Enter coefficient matrix: ');
B = input('Enter constant matrix: ');
X = A \ B;
disp('Solution:'); disp(X);
%% Q38: Solve system using Gauss-Seidel Method
A = input('Enter coefficient matrix: ');
B = input('Enter constant matrix: ');
X = zeros(size(B));
tol = 1e-6;
maxIter = 100;
for k = 1:maxIter
X_old = X;
for i = 1:length(B)
X(i) = (B(i) - A(i, :) * X + A(i, i) * X(i)) / A(i, i);
end
if norm(X - X_old, inf) < tol
break;
end
end
disp('Solution:'); disp(X);
%% Q39: Solve system using Inverse Matrix Method
A = input('Enter coefficient matrix: ');
B = input('Enter constant matrix: ');
X = inv(A) * B;
disp('Solution:'); disp(X);
%% Q40: Find roots of a polynomial
coeffs = input('Enter polynomial coefficients: ');
roots_poly = roots(coeffs);
disp('Roots of polynomial:'); disp(roots_poly);
%% Q41: Approximate Pi using Series
n = 100000;
pi_approx = 4 * sum((-1).^(0:n) ./ (2 * (0:n) + 1));
fprintf('Approximated Pi: %.3f\n', pi_approx);
%% Q42: Solve system using inverse matrix (Duplicate of Q39)
%% Q43: Solve x log(x) - 1.2 = 0 using Newton-Raphson Method
f = @(x) x * log(x) - 1.2;
df = @(x) log(x) + 1;
x0 = 1.5;
while true
x1 = x0 - f(x0) / df(x0);
if abs(x1 - x0) < tol
break;
end
x0 = x1;
end
fprintf('Root: %f\n', x1);
%% Q44: Compute Correlation Coefficient
X = input('Enter X data: ');
Y = input('Enter Y data: ');
r = corrcoef(X, Y);
fprintf('Correlation Coefficient: %f\n', r(1, 2));
%% Q45: Compute Regression Line
X = input('Enter X data: ');
Y = input('Enter Y data: ');
p = polyfit(X, Y, 1);
fprintf('Regression Line: y = %f * x + %f\n', p(1), p(2));
%% Q46: Compute Best Fit Parabola y = a + bx + cx^2
p = polyfit(X, Y, 2);
fprintf('Best Fit Parabola: y = %f + %f*x + %f*x^2\n', p(3), p(2), p(1));
%% Q47: Compute Best Fit Exponential Curve y = a * exp(bx)
logY = log(Y);
p = polyfit(X, logY, 1);
fprintf('Best Fit Exponential Curve: y = %f * e^(%f * x)\n', exp(p(2)), p(1));
%% Q48: Compute Best Fit Line
disp('Same as Regression Line in Q45');