Integrating Function with MATLAB - Solve & Plot

  • Context: MATLAB 
  • Thread starter Thread starter Execute
  • Start date Start date
  • Tags Tags
    Integration Matlab
Click For Summary
SUMMARY

The discussion focuses on integrating a piecewise function using MATLAB and plotting its integral alongside its derivative. The user encounters an error due to attempting to assign a vector to a scalar variable, specifically in the lines where the integral is calculated. The solution involves changing the variable 't' to 't(n)' to ensure proper indexing. Additionally, the user seeks guidance on implementing integration in MATLAB similar to the 1/s block in Simulink.

PREREQUISITES
  • Understanding of piecewise functions in mathematics
  • Familiarity with MATLAB programming and syntax
  • Knowledge of vector and scalar operations in MATLAB
  • Basic concepts of numerical integration
NEXT STEPS
  • Learn about MATLAB's 'linspace' function for creating vectors
  • Research MATLAB's 'integrate' function for numerical integration
  • Explore how to implement integration in MATLAB similar to Simulink's 1/s block
  • Study MATLAB plotting functions to visualize multiple datasets
USEFUL FOR

Mathematics students, MATLAB programmers, engineers working with numerical methods, and anyone interested in integrating functions and visualizing data in MATLAB.

Execute
Messages
2
Reaction score
0
Hi everyone, I have a problem in finding an integral of a function. I'm given the following function: x(t) = t + 1 (-1 <= t < o ); e^-t (0<= t <= 2); 0 (otherwise).I have to find the integral and plot it with its derivative and the given function.

Here is my code:
%Set up integral vector
u(1:1000) = 0;
%Find the integral
for n = 1:999;
if( (t(n)>= -1) & (t(n)<0) );
u(n) = 0.5.*(t.^2) + t;
end
if ( (t(n)>=0) & (t(n)<2) );
u(n) = -1.*(exp(-t));
end
if( (t(n)>2 ) )
u(n) = 1.*t;
end
end
subplot(3,1,3);
plot(t,u);

I get the following error when trying to run the code:
? In an assignment A(I) = B, the number of elements in B and
I must be the same.

Error in ==> tut1 at 32
u(n) = 0.5.*(t.^2) + t;
 
Physics news on Phys.org
Execute said:
Error in ==> tut1 at 32
u(n) = 0.5.*(t.^2) + t;

In these three lines
Code:
     u(n) = 0.5.*(t.^2) + t;
      u(n) = -1.*(exp(-t));
      u(n) = 1.*t;
you are trying to store a vector in a scalar's place. u(n) is a scalar and t is a vector, so change t to t(n) and you will be fine. Also, be sure to define t properly (don't see it in your code), e.g. t = linspace(-1,2,1000).
 
i have 1 question
how do i apply 1/s in simulink block to M-code,
for example
Xdot to X
in simulink, we just apply the 1/s(integration block).
so i just want to know, is it possible to integrate the Xdot to X in m code??
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 18 ·
Replies
18
Views
4K
  • · Replies 2 ·
Replies
2
Views
4K