# How to create a mathematical expression which contains delays using Symbolic Math Toolbox?

4 views (last 30 days)
Hi everyone,
I'm trying to create a mathematical expression which contains some nonlinear terms like delays, interfaces etc., using symbolic math toolbox. An example of my code is as follows.
syms I1 I2 I3 I4 I5
terms = [I1.^2 I2-4 I1*I3-4 I4-8 I5]
theta = [1 2 1 1 5]'
Y = terms*theta
Here the term ''I3-4'' indicates the input I3 with a time delay of 4 seconds(I3(t-4)).I'm having the following issue
1. When I multiply terms and theta, it is giving me output as
Y =
instead of
Y = I1^2+2*(I2-4)+I1*(I3-4)+(I4-8)+5*I5
I understood that matlab is using BODMAS rule, but is there any correct way to create delay terms using Symbolic Math Toolbox. Can some one help me regarding this issue?
Thanks
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Answers (2)

Raghunandan V on 4 Jun 2019
Hi,
There is mistake in the coe :)
And the term I1*I3-4 is not the same you explained. Here it follows BODMAS rule.
I1*I3-4 = (I1*I3) - 4
NOT I1*(I3-4)
Regards,
Raghunandan V
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

Sayyed Ahmad on 4 Jun 2019
matlab multiplied and simplified your codes;
Y = I1^2+2*(I2-4)+I1*(I3-4)+(I4-8)+5*I5
Y = I1^2+2*I2-8+I1*I3-4+I4-8+5*I5
simpliefied to
Y= I1^2+I3.I1+ ... %highest order
2.I2+ ... % I2 to I5
I4+ ...
5.I5+ ...
-20 %constant
##### 2 CommentsShowHide 1 older comment
Edited: Raja Vardhan Reddy Kothakapu on 4 Jun 2019
yes, I understood that Matlab uses BODMAS rule. Some how I need to create this delay terms and pass them to the function handle , thats why I'm using I3-4 instead of I3(t-4). Maybe my question should be is there any correct way to create delay terms using symbolic math toolbax

Sign in to comment.

### Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

R2018a

### Community Treasure Hunt

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

Start Hunting!

Translated by