How to plot midpoint method

86 visualizaciones (últimos 30 días)
Fausto Pachecco Martínez
Fausto Pachecco Martínez el 14 de Nov. de 2021
Comentada: Fausto Pachecco Martínez el 18 de Nov. de 2021
I have this code in which I use the integration with the midpoint method (with rectangles), I already have the formulas but I don't know how to plot it.
clear all
clc
close all
%Ask the user for the expression
expression = input ("Please enter the expression: ", 's');
%Convert expression to function
f = inline(expression);
%Ask for limits of the interval to be evaluated
a = input ("Enter value of a: ");
b = input ("Enter value of b: ");
%Ask for the number of intervals
m = input ("Enter value of m: ");
%calculate the value of h
h = (b-a) / m;
%Add the area of each rectangle
S = 0;
for i = 1:m
%Calculate the area of a rectangle
S = S + (h) * (f((a+(a+h))/2));
a = a+h;
end
fprintf ("The approximate value of the integral of% s is:% 7.4f \ n", expression, S);

Respuesta aceptada

Pavan Guntha
Pavan Guntha el 17 de Nov. de 2021
Hello Fausto,
In order to plot the output of midpoint method, the data corresponding to the variable to be plotted needs to be included in the logic. For instance if the required data to be plotted is the Area of rectangle (S) per each interval (m), we need to track the area of rectangle in each iteration within the for loop as illustrated below:
for i = 1:m
%Calculate the area of a rectangle
S = S + (h) * (f((a+(a+h))/2));
area(i) = (h) * (f((a+(a+h))/2)); % Track area of rectangle in each iteration.
a = a+h;
end
plot(1:m, area); % Plots area of rectangle per each iteration.
You could have a look at the following resources which implements the similar task:
  1. Midpoint numerical integration without a built in function
  2. Integration in 2D by the midpoint rule
Hope this helps!

Más respuestas (0)

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by