MATLAB mistaken Inertia I for imaginary number what do i do?

  • Thread starter GreenPrint
  • Start date
  • #1
1,196
0
MATLAB tends to mistake I or i for imaginary number when ever I try to use it as a variable, for example when do with a pendulum with a mass attached to it then

2 pi f = sqrt( (m g L)/I )
were I is the inertia not imaginary number
but when I try to get MATLAB to solve this equation for L it returns it as a lower case i because it thinks it's the imaginary number
How do I get around this
example
Code:
disp('If a pendulum on Earth has a mass of 10 kg, a frequency of .2 Hz, and a inertia of 60 kg m/s,')
fprintf('then it''s legnth is %s m.\n',char(solve(subs('2*pi*f=((m*g*L)/I)^(1/2)',{'f' 'g' 'I' 'm'},{.2 9.8 60 10}),'L')))
If a pendulum on Earth has a mass of 10 kg, a frequency of .2 Hz, and a inertia of 60 kg m/s,
then it's legnth is (2*pi^2*sqrt(-1))/1225 m.
As you can see... This was suppose to solve the equation for L and then plug in the values and return the exact answer instead it returns sqrt(-1) because it mistook I for the imaginary number
 

Answers and Replies

  • #2
uart
Science Advisor
2,784
12
Normally matlab has no problems overriding the predefined constant of I=sqrt(-1). I usually prefer to just use another variable name, but in the past I've used I (and i) as a variable without any issue.

Try assigning the variables with there numerical values before calling solve. As in,

f = 0.2
g = 9.8
I = 60
etc


Edit. Ok I just realized you're using the symbolic solver and I'm not so sure how it works in this regard. Maybe you'll need to use an alternate symbol for moment of inertia.
 
Last edited:

Related Threads on MATLAB mistaken Inertia I for imaginary number what do i do?

Replies
20
Views
1K
Replies
5
Views
7K
Replies
1
Views
799
  • Last Post
Replies
5
Views
1K
Replies
1
Views
1K
Replies
0
Views
1K
Replies
2
Views
3K
Replies
4
Views
4K
  • Last Post
Replies
9
Views
3K
Top