Engineering Homework Help

Stony Brook University MATLab Coding Project Report

 

Hi, I need help on a programming project and need two things, a correct coding file and the problem solved by hand.

I have a template made to make the coding easier but I need you to put in the right numbers where the * are in the template

Please provide notes for the mathematical approach (solving by hand)

Please submit a .m file of the code and a separate file for the handwritten work

Here is the template, fill in the blanks where the * are with the correct value:

% Numerical Integration
% --------------------------Function description--------------------------%
% central_fc():         Calculates central finite difference
% forward_fc():         Calculates forward finite difference
% backward_fc():        Calculates backward finite difference
% trapezoid():          Integration by using Trapezoidal Rule
% simpson():            Integration by using Simpson's 1/3
% ------------------------------------------------------------------------%
clc;
clear all;

% Given data, V
V = [4.1 4.7 5.23;
    2.2 2.5 2.7;
    1.775 1.995 2.125;
    1.35 1.49 1.55;
    1.1 1.2 1.24;
    0.90 0.99 1.03;
    0.79 0.87 0.905;
    0.68 0.75 0.78;
    0.61 0.675 0.7];

% Given data, P
P = [5;10;15;20;25;30;35;40;45];
T = 400;        % We estimate enthalpy at T = 400 K
n = length(P);  % length of P
col = 2;        % column index of V where T = 400 K
delT = 50;      % temperature increment = 50 K

% Calculate derivative of V by calling FD(Finite Differencing)function
% dVdT = central_fd(*,*,*);
% dVdT = forward_fd(*,*,*);
dVdT = backward_fd(*,*,*);

% Calculate function to be integrated: [V-T*(dV/dT)]
for i = 1:*
    *(i) = *(*,*) - T*dVdT(*);
end

% Integrate function B along P
H = trapezoid(P,B);  % by Trapezoidal rule
% H = simpson(P,B);  % by Simpson's 1/3

% Print result
fprintf('Enthalpy, H = %fn',H);

function [*] = central_fd(*,*,*)
% Input
% x: given data (9x3)
% h: increment (temperature)
% c: column index where T = 400 K
% Output
% dvdt: derivative of v
    n = height(x); % n = 9
    dvdt = zeros(9,1);
    for i = 1:n
        dvdt(i) = ( x(i,c+1) - x(i,c-1) ) / ( 2*h );
    end
end
function [*] = forward_fd(*,*,*)
% Input
% x: given data (9x3)
% h: increment (temperature)
% c: column index where T = 400 K
% Output
% dvdt: derivative of v
    n = height(x); % n = 9
    dvdt = zeros(9,1);
    for i = 1:n
        dvdt(i) = ( x(i,c+1) - x(i,c) ) / ( h );
    end
end
function [*] = backward_fd(*,*,*)
% Input
% x: given data (9x3)
% h: increment (temperature)
% c: column index of x where T = 400 K
% Output
% dvdt: derivative of v
    n = height(x); % n = 9
    dvdt = zeros(9,1);
    for i = 1:n
        dvdt(i) = ( x(i,c) - x(i,c-1) ) / ( h );
    end
end

function [*] = trapezoid(*,*)
% Input
% p: pressure data
% b: function to be integrated [V-T*(dV/dT)]
% Output
% H: result of integration
% ***Note that index of this code starts 1, not 0.
    n = length(p);
    N = n-1;    % the number of segments
    
    % Adding internal values
    b_sum = 0.0;
    for j = 2:N
        b_sum = b_sum + b(j);
    end

    H = (p(n)-p(1)) * (b(1) + 2*b_sum + b(n))/(2*N);

end

function [*] = simpson(*,*)
% Input
% p: pressure data
% b: function to be integrated [V-T*(dV/dT)]
% Output
% H: result of integration
% ***Note that index of this code starts 1, not 0.
    n = length(p);
    N = n-1;    % the number of segments
    
    % Perform summation of values of even index
    b1_sum = 0.0;
    for j = 2:2:N
        b1_sum = b1_sum + b(j);
    end
    % Perform summation of values of odd index
    b2_sum = 0.0;
    for j = 3:2:N-1
        b2_sum = b2_sum + b(j);
    end
    
    H = (p(n)-p(1)) * (b(1) + 4*b1_sum + 2*b2_sum + b(n))/(3*N);
end