Bird
Raised Fist0
MATLABdata~5 mins

Numerical integration (integral, trapz) in MATLAB - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Numerical integration (integral, trapz)
O(n)
Understanding Time Complexity

When we use numerical integration in MATLAB, we want to know how the time it takes changes as we use more points.

We ask: How does the work grow when the input size grows?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

x = linspace(0, 10, n);
y = sin(x);
result = trapz(x, y);

This code calculates the integral of the sine function using the trapezoidal rule with n points.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Summing areas of trapezoids between points.
  • How many times: The operation repeats once for each pair of points, about n-1 times.
How Execution Grows With Input

As we increase the number of points n, the number of trapezoids to sum grows roughly the same.

Input Size (n)Approx. Operations
109
10099
1000999

Pattern observation: The work grows linearly as n grows.

Final Time Complexity

Time Complexity: O(n)

This means the time to compute the integral grows in direct proportion to the number of points.

Common Mistake

[X] Wrong: "Using more points will only add a tiny bit of time, so it's almost free."

[OK] Correct: Each extra point adds work because the trapezoidal sum must include it, so time grows steadily with points.

Interview Connect

Understanding how numerical methods scale helps you explain efficiency clearly and shows you can think about real problems beyond just writing code.

Self-Check

"What if we used a method that doubles the points each step, how would the time complexity change?"

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

  1. 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.
  2. Step 2: Compare with other options

    Options A, B, and C describe different MATLAB functions or operations unrelated to numerical integration.
  3. Final Answer:

    Calculates the numerical integral of a function over a specified interval -> Option B
  4. 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

  1. Step 1: Identify correct function handle syntax

    In MATLAB, integral requires a function handle, written as @functionName. So @sin is correct.
  2. 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.
  3. Final Answer:

    integral(@sin, 0, pi) -> Option A
  4. 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

  1. Step 1: Calculate y values

    Given x = [0 0.5 1 1.5 2], y = x.^2 = [0 0.25 1 2.25 4].
  2. 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
  3. Final Answer:

    2.75 -> Option D
  4. 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

  1. Step 1: Check trapz argument order

    trapz expects x values first, then y values. Here, arguments are reversed.
  2. Step 2: Validate other parts

    linspace with 5 points is valid; .^3 is correct for element-wise cube; trapz works with vectors.
  3. Final Answer:

    Arguments to trapz are reversed; should be trapz(x, y) -> Option C
  4. 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

  1. Step 1: Understand data and goal

    The data y includes noise, so exact function integral is not possible from data alone.
  2. Step 2: Choose appropriate method

    Using trapz(x, y) approximates the integral from discrete noisy data points effectively.
  3. 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.
  4. Final Answer:

    Use trapz(x, y) to approximate integral from noisy data -> Option A
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard