ilaplace confusing - result from command window and from m file gui is not the same
You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Show older comments
Hi,
I write in command window:
ilaplace((0.99984898859777815438576453743735*s^2 + 1414.0*s - 414151.01140222184561423546256265)/((s + 1000.0)*(s^2 + 1000000.0)))
And I got : ans =
(199002808534433793169*cos(1000*t))/140737488355328000000 - 58286573144567511919/(140737488355328000000*exp(1000*t)) - (1169*sin(1000*t))/140737488355328000000
I write the same in m file from GUI and I got:
0.707*exp(1000.0*t*i) - 0.41415101140222184561423546256265/exp(1000.0*t) + 0.707*(1/exp(1000.0*t*i))
WHY I GOT COMPLEX NUMBER? "i"?
1 Comment
john
on 21 Jan 2014
No idea?
Accepted Answer
Mischa Kim
on 21 Jan 2014
Edited: Mischa Kim
on 21 Jan 2014
Hello John, it is actually the same. Try plotting the two results.
The reason you get complex numbers is because of Euler's formula:
exp^(ix) = cos(x) + i*sin(x)
12 Comments
john
on 21 Jan 2014
I was thinking, that from inverse Laplace transformation I get only time domain, not imaginary...
and why result is not the same in command window and in m file gui?- I mean only time domain?
Mischa Kim
on 21 Jan 2014
Edited: Mischa Kim
on 21 Jan 2014
Have a look at the first and last term of the GUI result:
0.707*exp(1000.0*t*i) + 0.707*(1/exp(1000.0*t*i))
According to Euler this should equal to
2*0.707*cos(1000.0*t)
Evaluate both terms at, e.g., t=3:
0.707*exp(1000.0*3*i) + 0.707*(1/exp(1000.0*3*i))
ans =
-1.379614630638451 - 0.000000000000000i
versus
2*0.707*cos(1000.0*3)
ans =
-1.379614630638451
In other words, the method (inverse Laplace) is just fine. It's the computer that does not quite get it right.
john
on 21 Jan 2014
Should I change computer :-) ?
If I use command "abs" for result from ilaplace, I should get what I need. But I got this:
abs(0.707*exp(1000.0*t*i) - 0.41415101140222184561423546256265/exp (1000.0*t) + 0.707*(1/exp(1000.0*t*i)))
What happend? Maybe ilaplace is not problem....problem is somewhere else.
But where?
syms t
res = 0.707*exp(1000.0*t*i) - 0.41415101140222184561423546256265/exp(1000.0*t) + 0.707*(1/exp(1000.0*t*i));
simp_res = simplify(res, 'Criterion', 'preferReal', 'Steps', 100)
simp_res =
(707*cos(1000*t))/500 - (7460681362504641*exp(-1000*t))/18014398509481984
john
on 22 Jan 2014
Hi, I got error:
??? Error using ==> sym.simplify
Too many input arguments.
I use matlab R2011a
In command window for:
a=simplify(70.7*exp(1000.0*t*i)*i + 41.415101140222184561423546256265/exp(1000.0*t) - 70.7*(1/exp(1000.0*t*i))*i)
b=simplify(exp(1000.0*t*i)*(70.7*i + 70.7) + (1/exp(1000.0*t*i))*(70.7 - 70.7*i))
I got result quickly, but in m file gui program stop by "a" command and program does not nothing for 2 minutes, no error...like bussy...after 2 minutes I got result...why so long in gui?
john
on 23 Jan 2014
Thank you , it works
Mischa Kim
on 23 Jan 2014
Excellent. What was/is the issue with the GUI performance? How did you get it resolved?
john
on 26 Jan 2014
I used simplify.....but I can not set number of steps or 'Criterion', 'preferReal'...I have matlab R2011a ....this is maybe problem.
I wrote, that calculation takes long time......but only first time....next time calculation is much faster...I do not know why? Some of result of calculation are storem in RAM memory or whay?
Thank you
john
on 25 Feb 2014
I use Matlab version 2011a. If I set steps of simplify, than I get error:
syms t
res = 0.707*exp(1000.0*t*i) - 0.41415101140222184561423546256265/exp(1000.0*t) + 0.707*(1/exp(1000.0*t*i));
simp_res = simplify(res, 'Criterion', 'preferReal', 'Steps', 100)
??? Error using ==> sym.simplify
Too many input arguments.
Do I need change version of Matlab, or what?
Thank you
Sorry, but for relative little number simplify doesn't help.
In command window I it is OK, I get:
>> r=simplify(ilaplace(-((4280819729186186979044460847261*s^2)/51422017416287688817342786954917203280710495801049370729644032 + (994733177774077628149071673933*s)/50216813883093446110686315385661331328818843555712276103168 - 949357667952072971550917252451/1569275433846670190958947355801916604025588861116008628224)/((3*s + 200)*(s^2 + 98596))))
r =
19981467697883435869/(3970734387895709337413208929317684822969348320657408*exp((200*t)/3)) - (694227838351497933185*cos(314*t))/21177250068777116466203780956360985722503191043506176 - (11693735405742169632973*sin(314*t))/831207065199501821298498402537168689608250248457617408
But in guide I get:
r=simplify(ilaplace(-((4280819729186186979044460847261*s^2)/51422017416287688817342786954917203280710495801049370729644032 + (994733177774077628149071673933*s)/50216813883093446110686315385661331328818843555712276103168 - 949357667952072971550917252451/1569275433846670190958947355801916604025588861116008628224)/((3*s + 200)*(s^2 + 98596))))
r =
3.0679013785265445477520983725365*10^(-35)*dirac(t)
Why? It is sooo bad!
john
on 26 Feb 2014
No idea?
More Answers (0)
Categories
Find more on Calculus in Help Center and File Exchange
Tags
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)