Numerical integration using integral and trapz in MATLAB
📖 Scenario: You are working as a data analyst and need to calculate the area under a curve representing a physical measurement over time. This is a common task in science and engineering to find total quantities from rate data.
🎯 Goal: Build a MATLAB script that calculates the integral of a function using both the integral function and the trapz function for numerical integration. You will compare the results to understand how these methods work.
📋 What You'll Learn
Create a vector of x values from 0 to 10 with 100 points
Create a vector y with the function values y = sin(x)
Use the integral function to calculate the integral of sin(x) from 0 to 10
Use the trapz function to calculate the integral approximation from the x and y vectors
Print both results to compare
💡 Why This Matters
🌍 Real World
Numerical integration is used in physics, engineering, and data analysis to find total quantities like distance from speed or area under curves from measurements.
💼 Career
Understanding numerical integration helps in roles like data analyst, engineer, or scientist where you work with experimental data or simulations.
Progress0 / 4 steps
1
Create the x vector
Create a vector called x with 100 points linearly spaced from 0 to 10 using the linspace function.
MATLAB
Hint
Use linspace(0, 10, 100) to create 100 points between 0 and 10.
2
Calculate y = sin(x)
Create a vector called y that contains the sine of each value in x using the sin function.
MATLAB
Hint
Use y = sin(x); to get sine values for each x.
3
Calculate integrals using integral and trapz
Calculate the integral of sin(x) from 0 to 10 using the integral function and store it in int_val. Then calculate the integral approximation using trapz with x and y and store it in trapz_val.
MATLAB
Hint
Use integral(@sin, 0, 10) and trapz(x, y) to calculate integrals.
4
Display the results
Print the values of int_val and trapz_val using fprintf to show the integral results with 6 decimal places.
MATLAB
Hint
Use fprintf('Integral using integral: %.6f\n', int_val); and similarly for trapz_val.
Practice
(1/5)
1. What does the MATLAB function integral primarily do?
easy
A. Finds the derivative of a function
B. Calculates the numerical integral of a function over a specified interval
C. Plots data points on a graph
D. Solves algebraic equations symbolically
Solution
Step 1: Understand the purpose of integral
The integral function in MATLAB is used to calculate the area under a curve defined by a function between two limits.
Step 2: Compare with other options
Options A, B, and C describe different MATLAB functions or operations unrelated to numerical integration.
Final Answer:
Calculates the numerical integral of a function over a specified interval -> Option B
Quick Check:
integral = numerical integration [OK]
Hint: Remember integral finds area under curve from function [OK]
Common Mistakes:
Confusing integral with symbolic math functions
Thinking integral plots graphs
Mixing integral with derivative functions
2. Which of the following is the correct syntax to compute the integral of sin(x) from 0 to pi using integral in MATLAB?
easy
A. integral(@sin, 0, pi)
B. integral(sin(x), 0, pi)
C. integral('sin(x)', 0, pi)
D. integral(sin, [0 pi])
Solution
Step 1: Identify correct function handle syntax
In MATLAB, integral requires a function handle, written as @functionName. So @sin is correct.
Step 2: Check argument format
The limits are given as separate arguments, so 0, pi is correct. Other options misuse syntax by passing strings or symbolic expressions.
Final Answer:
integral(@sin, 0, pi) -> Option A
Quick Check:
Use @ for function handle in integral [OK]
Hint: Use @ before function name for integral [OK]
Common Mistakes:
Passing function as string instead of handle
Using symbolic expressions instead of function handle
Putting limits inside brackets as one argument
3. What is the output of the following MATLAB code?
x = 0:0.5:2; y = x.^2; area = trapz(x, y); disp(area);
medium
A. 2.5
B. 4.0
C. 3.0
D. 2.75
Solution
Step 1: Calculate y values
Given x = [0 0.5 1 1.5 2], y = x.^2 = [0 0.25 1 2.25 4].
Step 2: Apply trapezoidal rule with trapz
trapz approximates integral as sum of trapezoids: Area ≈ 0.5*((0+0.25)/2 + (0.25+1)/2 + (1+2.25)/2 + (2.25+4)/2) = 0.5*(0.125 + 0.625 + 1.625 + 3.125) = 0.5*5.5 = 2.75
Final Answer:
2.75 -> Option D
Quick Check:
trapz(x,y) ≈ 2.75 [OK]
Hint: Calculate y, then sum trapezoids with trapz [OK]
Common Mistakes:
Forgetting to square x for y
Using incorrect step size in calculation
Mixing up trapz and integral outputs
4. Identify the error in this MATLAB code snippet:
x = linspace(0,1,5); y = x.^3; result = trapz(y, x);
medium
A. Using .^3 is incorrect for element-wise power
B. linspace should have 6 points instead of 5
C. Arguments to trapz are reversed; should be trapz(x, y)
D. trapz cannot be used with vectors
Solution
Step 1: Check trapz argument order
trapz expects x values first, then y values. Here, arguments are reversed.
Step 2: Validate other parts
linspace with 5 points is valid; .^3 is correct for element-wise cube; trapz works with vectors.
Final Answer:
Arguments to trapz are reversed; should be trapz(x, y) -> Option C
Quick Check:
trapz(x,y) correct argument order [OK]
Hint: Remember trapz(x, y), x first then y [OK]
Common Mistakes:
Swapping x and y in trapz
Thinking linspace points count causes error
Misunderstanding element-wise power operator
5. You have noisy data points x = 0:0.1:1 and y = sin(2*pi*x) + 0.1*randn(size(x)). Which method is best to estimate the integral of the underlying sine wave over [0,1]?
hard
A. Use trapz(x, y) to approximate integral from noisy data
B. Use trapz(y, x) ignoring x order
C. Use integral(@(t) sin(2*pi*t), 0, 1) for exact integral
D. Use symbolic integration on noisy data
Solution
Step 1: Understand data and goal
The data y includes noise, so exact function integral is not possible from data alone.
Step 2: Choose appropriate method
Using trapz(x, y) approximates the integral from discrete noisy data points effectively.
Step 3: Evaluate other options
Use integral(@(t) sin(2*pi*t), 0, 1) for exact integral uses exact function without noise, not data-based; Use trapz(y, x) ignoring x order reverses arguments; Use symbolic integration on noisy data is invalid for numeric noisy data.
Final Answer:
Use trapz(x, y) to approximate integral from noisy data -> Option A
Quick Check:
trapz(x,y) best for noisy data integration [OK]
Hint: Use trapz with noisy data, integral needs exact function [OK]
Common Mistakes:
Using integral on noisy data without function
Swapping arguments in trapz
Trying symbolic integration on numeric noise
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.