laplace.rlg 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801
  1. Tue Feb 10 12:28:22 2004 run on Linux
  2. % Title: Examples of Laplace Transforms.
  3. % Author: L. Kazasov.
  4. % Date: 24 October 1988.
  5. order p;
  6. % Elementary functions with argument k*x, where x is object var.
  7. laplace(1,x,p);
  8. 1
  9. ---
  10. p
  11. laplace(c,x,p);
  12. c
  13. ---
  14. p
  15. laplace(sin(k*x),x,p);
  16. k
  17. ---------
  18. 2 2
  19. p + k
  20. laplace(sin(x/a),x,p);
  21. a
  22. -----------
  23. 2 2
  24. p *a + 1
  25. laplace(sin(17*x),x,p);
  26. 17
  27. ----------
  28. 2
  29. p + 289
  30. laplace(sinh x,x,p);
  31. 1
  32. --------
  33. 2
  34. p - 1
  35. laplace(cosh(k*x),x,p);
  36. - p
  37. ------------
  38. 2 2
  39. - p + k
  40. laplace(x,x,p);
  41. 1
  42. ----
  43. 2
  44. p
  45. laplace(x**3,x,p);
  46. 6
  47. ----
  48. 4
  49. p
  50. off mcd;
  51. laplace(e**(c*x) + a**x, x, s);
  52. -1 -1
  53. - ((log(a) - s) + (c - s) )
  54. laplace(e**x - e**(a*x) + x**2, x, p);
  55. -3 -1 -1
  56. 2*p + ( - p + a) + (p - 1)
  57. laplace(one(k*t) + sin(a*t) - cos(b*t) - e**t, t, p);
  58. 2 2 -1 -1 2 2 -1 -1
  59. - p*(p + b ) + p + (p + a ) *a - (p - 1)
  60. laplace(sqrt(x),x,p);
  61. - 3/2
  62. 1/2*sqrt(pi)*p
  63. laplace(x**(1/2),x,p);
  64. - 3/2
  65. 1/2*sqrt(pi)*p
  66. on mcd;
  67. laplace(x**(-1/2),x,p);
  68. sqrt(pi)
  69. ----------
  70. sqrt(p)
  71. laplace(x**(5/2),x,p);
  72. 15*sqrt(pi)
  73. --------------
  74. 3
  75. 8*sqrt(p)*p
  76. laplace(-1/4*x**2*c*sqrt(x), x, p);
  77. - 15*sqrt(pi)*c
  78. ------------------
  79. 3
  80. 32*sqrt(p)*p
  81. % Elementary functions with argument k*x - tau,
  82. % where k>0, tau>=0, x is object var.
  83. laplace(cos(x-a),x,p);
  84. p
  85. ---------------
  86. p*a 2
  87. e *(p + 1)
  88. laplace(one(k*x-tau),x,p);
  89. 1
  90. --------------
  91. (p*tau)/k
  92. e *p
  93. laplace(sinh(k*x-tau),x,p);
  94. - k
  95. -------------------------
  96. (p*tau)/k 2 2
  97. e *( - p + k )
  98. laplace(sinh(k*x),x,p);
  99. - k
  100. ------------
  101. 2 2
  102. - p + k
  103. laplace((a*x-b)**c,x,p);
  104. c
  105. a *gamma(c + 1)
  106. -----------------
  107. c (p*b)/a
  108. p *e *p
  109. % But ...
  110. off mcd;
  111. laplace((a*x-b)**2,x,p);
  112. -3 2 2 2
  113. p *(p *b - 2*p*a*b + 2*a )
  114. on mcd;
  115. laplace(sin(2*x-3),x,p);
  116. 2
  117. -------------------
  118. (3*p)/2 2
  119. e *(p + 4)
  120. on lmon;
  121. laplace(sin(2*x-3),x,p);
  122. 2
  123. -------------------
  124. (3*p)/2 2
  125. e *(p + 4)
  126. off lmon;
  127. off mcd;
  128. laplace(cosh(t-a) - sin(3*t-5), t, p);
  129. - p*a 2 -1 - 5/3*p 2 -1
  130. e *p*(p - 1) - 3*e *(p + 9)
  131. on mcd;
  132. % More complicated examples - multiplication of functions.
  133. % We use here on lmon - a new switch that forces all
  134. % trigonometrical functions which depend on object var
  135. % to be represented as exponents.
  136. laplace(x*e**(a*x)*cos(k*x), x, p);
  137. 2 2 2
  138. p - 2*p*a + a - k
  139. -------------------------------------------------------------------------
  140. 4 3 2 2 2 2 3 2 4 2 2 4
  141. p - 4*p *a + 6*p *a + 2*p *k - 4*p*a - 4*p*a*k + a + 2*a *k + k
  142. laplace(x**(1/2)*e**(a*x), x, p);
  143. - sqrt(pi)
  144. --------------------------
  145. 2*sqrt(p - a)*( - p + a)
  146. laplace(-1/4*e**(a*x)*(x-k)**(-1/2), x, p);
  147. a*k
  148. - sqrt(pi)*e
  149. --------------------
  150. p*k
  151. 4*e *sqrt(p - a)
  152. laplace(x**(5/2)*e**(a*x), x, p);
  153. - 15*sqrt(pi)
  154. ----------------------------------------------
  155. 3 2 2 3
  156. 8*sqrt(p - a)*( - p + 3*p *a - 3*p*a + a )
  157. laplace((a*x-b)**c*e**(k*x)*const/2, x, p);
  158. (b*k)/a c
  159. - e *a *gamma(c + 1)*const
  160. -----------------------------------
  161. (p*b)/a c
  162. 2*e *(p - k) *( - p + k)
  163. off mcd;
  164. laplace(x*e**(a*x)*sin(7*x)/c*3, x, p);
  165. 2 2 -2 -1
  166. 42*(p - 2*p*a + a + 49) *c *(p - a)
  167. on mcd;
  168. laplace(x*e**(a*x)*sin(k*x-tau), x, p);
  169. (a*tau)/k 2 2 2 (p*tau)/k
  170. (e *(p *tau - 2*p*a*tau + 2*p*k + a *tau - 2*a*k + k *tau))/(e
  171. 4 3 2 2 2 2 3 2 4 2 2 4
  172. *(p - 4*p *a + 6*p *a + 2*p *k - 4*p*a - 4*p*a*k + a + 2*a *k + k ))
  173. % The next is unknown if lmon is off.
  174. laplace(sin(k*x)*cosh(k*x), x, p);
  175. *** Laplace for cosh(x*k)*sin(x*k) not known - try ON LMON
  176. laplace(cosh(k*x)*sin(k*x),x,p)
  177. laplace(x**(1/2)*sin(k*x), x, p);
  178. *** Laplace for sqrt(x)*sin(x*k) not known - try ON LMON
  179. laplace(sqrt(x)*sin(k*x),x,p)
  180. on lmon;
  181. % But now is OK.
  182. laplace(x**(1/2)*sin(a*x)*cos(a*b), x, p);
  183. (sqrt(pi)*cos(a*b)
  184. *(sqrt(p - a*i)*p*i - sqrt(p + a*i)*p*i + sqrt(p - a*i)*a + sqrt(p + a*i)*a))/(
  185. 2 2
  186. 4*sqrt(p + a*i)*sqrt(p - a*i)*(p + a ))
  187. laplace(sin(x)*cosh(x), x, p);
  188. 2
  189. p + 2
  190. --------
  191. 4
  192. p + 4
  193. laplace(sin(k*x)*cosh(k*x), x, p);
  194. 2 2
  195. k*(p + 2*k )
  196. ---------------
  197. 4 4
  198. p + 4*k
  199. % Off exp leads to very messy output in this case.
  200. % off exp; laplace(sin(k*x-t)*cosh(k*x-t), x, p); on exp;
  201. laplace(sin(k*x-t)*cosh(k*x-t), x, p);
  202. 2 2
  203. k*(p + 2*k )
  204. ----------------------
  205. (p*t)/k 4 4
  206. e *(p + 4*k )
  207. laplace(cos(x)**2,x,p);
  208. 2
  209. p + 2
  210. ------------
  211. 2
  212. p*(p + 4)
  213. laplace(c*cos(k*x)**2,x,p);
  214. 2 2
  215. c*(p + 2*k )
  216. ---------------
  217. 2 2
  218. p*(p + 4*k )
  219. laplace(c*cos(2/3*x)**2, x, p);
  220. 2
  221. c*(9*p + 8)
  222. ---------------
  223. 2
  224. p*(9*p + 16)
  225. laplace(5*sinh(x)*e**(a*x)*x**3, x, p);
  226. 3 2 2 3 8 7 6 2 6
  227. (120*(p - 3*p *a + 3*p*a + p - a - a))/(p - 8*p *a + 28*p *a - 4*p
  228. 5 3 5 4 4 4 2 4 3 5 3 3
  229. - 56*p *a + 24*p *a + 70*p *a - 60*p *a + 6*p - 56*p *a + 80*p *a
  230. 3 2 6 2 4 2 2 2 7 5
  231. - 24*p *a + 28*p *a - 60*p *a + 36*p *a - 4*p - 8*p*a + 24*p*a
  232. 3 8 6 4 2
  233. - 24*p*a + 8*p*a + a - 4*a + 6*a - 4*a + 1)
  234. off exp;
  235. laplace(sin(2*x-3)*cosh(7*x-5), x, p);
  236. 2 11 2 11 11
  237. p *e + p + 14*p*e - 14*p + 53*e + 53
  238. -------------------------------------------------------------------------
  239. (3*p + 1)/2 5
  240. e *(p + 7 + 2*i)*(p + 7 - 2*i)*(p - 7 + 2*i)*(p - 7 - 2*i)*e
  241. on exp;
  242. laplace(sin(a*x-b)*cosh(c*x-d), x, p);
  243. *** Laplace for - 1/4*one((x*a - b)/a)*one((x*c - d)/c)*i**(-1) not known
  244. *** Laplace for 1/4*one((x*a - b)/a)*one((x*c - d)/c)*i**(-1) not known
  245. a*i*x a*x - b c*x - d 2*c*x 2*d
  246. - e *one(---------)*one(---------)*i*(e + e )
  247. a c
  248. laplace(-----------------------------------------------------------,x,p)
  249. b*i + c*x + d
  250. 4*e
  251. b*i a*x - b c*x - d 2*c*x 2*d
  252. e *one(---------)*one(---------)*i*(e + e )
  253. a c
  254. + laplace(------------------------------------------------------,x,p)
  255. a*i*x + c*x + d
  256. 4*e
  257. % To solve this problem we must tell the program which one-function
  258. % is rightmost shifted. However, in REDUCE 3.4, this rule is still
  259. % not sufficient.
  260. for all x let one(x-b/a)*one(x-d/c) = one(x-b/a);
  261. laplace(sin(a*x-b)*cosh(c*x-d), x, p);
  262. (2*b*c)/a 2 2*d 2 (2*b*c)/a 2*d (2*b*c)/a 2
  263. (a*(e *p + e *p + 2*e *p*c - 2*e *p*c + e *a
  264. (2*b*c)/a 2 2*d 2 2*d 2 (p*b + a*d + b*c)/a
  265. + e *c + e *a + e *c ))/(2*e
  266. 4 2 2 2 2 4 2 2 4
  267. *(p + 2*p *a - 2*p *c + a + 2*a *c + c ))
  268. for all x clear one(x-b/a)*one(x-d/c) ;
  269. off lmon;
  270. % Floating point arithmetic.
  271. % laplace(3.5/c*sin(2.3*x-4.11)*e**(1.5*x), x, p);
  272. on rounded;
  273. laplace(3.5/c*sin(2.3*x-4.11)*e**(1.5*x), x, p);
  274. 117.461059957
  275. ----------------------------------------------------
  276. 1.78695652174*p 2
  277. 2.71828182846 *c*(p - 3.0*p + 7.54)
  278. laplace(x**2.156,x,p);
  279. 2.32056900246
  280. ---------------
  281. 3.156
  282. p
  283. laplace(x**(-0.5),x,p);
  284. 1.77245385091
  285. ---------------
  286. 0.5
  287. p
  288. off rounded;
  289. laplace(x**(-0.5),x,p);
  290. sqrt(pi)
  291. ----------
  292. sqrt(p)
  293. on rounded;
  294. laplace(x*e**(2.35*x)*cos(7.42*x), x, p);
  295. 2
  296. p - 4.7*p - 49.5339
  297. ---------------------------------------------------------
  298. 4 3 2
  299. p - 9.4*p + 143.2478*p - 569.44166*p + 3669.80312521
  300. laplace(x*e**(2.35*x)*cos(7.42*x-74.2), x, p);
  301. 3 2
  302. (160664647206.0*p - 1.11661929808e+12*p + 1.14319162408e+13*p
  303. 10.0*p
  304. - 2.36681205089e+13)/(2.71828182846
  305. 4 3 2
  306. *(p - 9.4*p + 143.2478*p - 569.44166*p + 3669.80312521))
  307. % Higher precision works, but uses more memory.
  308. % precision 20; laplace(x**2.156,x,p);
  309. % laplace(x*e**(2.35*x)*cos(7.42*x-74.2), x, p);
  310. off rounded;
  311. % Integral from 0 to x, where x is object var.
  312. % Syntax is intl(<expr>,<var>,0,<obj.var>).
  313. laplace(c1/c2*intl(2*y**2,y,0,x), x,p);
  314. 4*c1
  315. -------
  316. 4
  317. p *c2
  318. off mcd;
  319. laplace(intl(e**(2*y)*y**2+sqrt(y),y,0,x),x,p);
  320. -1 -3 - 3/2
  321. p *(2*(p - 2) + 1/2*sqrt(pi)*p )
  322. on mcd;
  323. laplace(-2/3*intl(1/2*y*e**(a*y)*sin(k*y),y,0,x), x, p);
  324. 2*k*( - p + a)
  325. -------------------------------------------------------------------------------
  326. 4 3 2 2 2 2 3 2 4 2 2 4
  327. 3*p*(p - 4*p *a + 6*p *a + 2*p *k - 4*p*a - 4*p*a*k + a + 2*a *k + k )
  328. % Use of delta function and derivatives.
  329. laplace(-1/2*delta(x), x, p);
  330. - 1
  331. ------
  332. 2
  333. laplace(delta(x-tau), x, p);
  334. 1
  335. --------
  336. p*tau
  337. e
  338. laplace(c*cos(k*x)*delta(x),x,p);
  339. c
  340. laplace(e**(a*x)*delta(x), x, p);
  341. 1
  342. laplace(c*x**2*delta(x), x, p);
  343. 0
  344. laplace(-1/4*x**2*delta(x-pi), x, p);
  345. 2
  346. - pi
  347. ---------
  348. p*pi
  349. 4*e
  350. laplace(cos(2*x-3)*delta(x-pi),x,p);
  351. cos(3)
  352. --------
  353. p*pi
  354. e
  355. laplace(e**(-b*x)*delta(x-tau), x, p);
  356. 1
  357. --------------
  358. tau*(p + b)
  359. e
  360. on lmon;
  361. laplace(cos(2*x)*delta(x),x,p);
  362. 1
  363. laplace(c*x**2*delta(x), x, p);
  364. 0
  365. laplace(c*x**2*delta(x-pi), x, p);
  366. 2
  367. c*pi
  368. -------
  369. p*pi
  370. e
  371. laplace(cos(a*x-b)*delta(x-pi),x,p);
  372. cos(a*pi - b)
  373. ---------------
  374. p*pi
  375. e
  376. laplace(e**(-b*x)*delta(x-tau), x, p);
  377. 1
  378. --------------
  379. tau*(p + b)
  380. e
  381. off lmon;
  382. laplace(2/3*df(delta x,x),x,p);
  383. 2*p
  384. -----
  385. 3
  386. off exp;
  387. laplace(e**(a*x)*df(delta x,x,5), x, p);
  388. 5
  389. - ( - p + a)
  390. on exp;
  391. laplace(df(delta(x-a),x), x, p);
  392. p
  393. ------
  394. p*a
  395. e
  396. laplace(e**(k*x)*df(delta(x),x), x, p);
  397. p - k
  398. laplace(e**(k*x)*c*df(delta(x-tau),x,2), x, p);
  399. k*tau 2 2
  400. e *c*(p - 2*p*k + k )
  401. ----------------------------
  402. p*tau
  403. e
  404. on lmon;
  405. laplace(e**(k*x)*sin(a*x)*df(delta(x-t),x,2),x,p);
  406. k*t 2*a*i*t 2 2 2*a*i*t 2*a*i*t
  407. (e *( - e *p *i + p *i - 2*e *p*a + 2*e *p*i*k - 2*p*a
  408. 2*a*i*t 2 2*a*i*t 2*a*i*t 2 2
  409. - 2*p*i*k + e *a *i + 2*e *a*k - e *i*k - a *i
  410. 2 t*(p + a*i)
  411. + 2*a*k + i*k ))/(2*e )
  412. off lmon;
  413. % But if tau is positive, Laplace transform is not defined.
  414. laplace(e**(a*x)*delta(x+tau), x, p);
  415. *** Laplace for delta(x + tau) not known - try ON LMON
  416. a*x
  417. laplace(e *delta(tau + x),x,p)
  418. laplace(2*c*df(delta(x+tau),x), x, p);
  419. *** Laplace for df(delta(x + tau),x) not known - try ON LMON
  420. laplace(2*df(delta(tau + x),x)*c,x,p)
  421. laplace(e**(k*x)*df(delta(x+tau),x,3), x, p);
  422. *** Laplace for df(delta(x + tau),x,3) not known - try ON LMON
  423. k*x
  424. laplace(e *df(delta(tau + x),x,3),x,p)
  425. % Adding new let rules for Laplace operator. Note the syntax.
  426. for all x let laplace(log(x),x) = -log(gam*il!&)/il!&;
  427. laplace(-log(x)*a/4, x, p);
  428. log(p*gam)*a
  429. --------------
  430. 4*p
  431. laplace(-log(x),x,p);
  432. log(p*gam)
  433. ------------
  434. p
  435. laplace(a*log(x)*e**(k*x), x, p);
  436. log(gam*(p - k))*a
  437. --------------------
  438. - p + k
  439. for all x clear laplace(log(x),x);
  440. operator f;
  441. for all x let
  442. laplace(df(f(x),x),x) = il!&*laplace(f(x),x) - sub(x=0,f(x));
  443. for all x,n such that numberp n and fixp n let
  444. laplace(df(f(x),x,n),x) = il!&**n*laplace(f(x),x) -
  445. for i:=n-1 step -1 until 0 sum
  446. sub(x=0, df(f(x),x,n-1-i)) * il!&**i ;
  447. for all x let laplace(f(x),x) = f(il!&);
  448. laplace(1/2*a*df(-2/3*f(x)*c,x), x,p);
  449. a*c*( - p*f(p) + f(0))
  450. ------------------------
  451. 3
  452. laplace(1/2*a*df(-2/3*f(x)*c,x,4), x,p);
  453. 4 3 2
  454. (a*c*( - p *f(p) + p *f(0) + p *sub(x=0,df(f(x),x)) + p*sub(x=0,df(f(x),x,2))
  455. + sub(x=0,df(f(x),x,3))))/3
  456. laplace(1/2*a*e**(k*x)*df(-2/3*f(x)*c,x,2), x,p);
  457. 2 2
  458. (a*c*( - p *f(p - k) + 2*p*f(p - k)*k + p*f(0) - f(p - k)*k - f(0)*k
  459. + sub(x=0,df(f(x),x))))/3
  460. clear f;
  461. % Or if the boundary conditions are known and assume that
  462. % f(i,0)=sub(x=0,df(f(x),x,i)) the above may be overwritten as:
  463. operator f;
  464. for all x let
  465. laplace(df(f(x),x),x) = il!&*laplace(f(x),x) - f(0,0);
  466. for all x,n such that numberp n and fixp n let
  467. laplace(df(f(x),x,n),x) = il!&**n*laplace(f(x),x) -
  468. for i:=n-1 step -1 until 0 sum il!&**i * f(n-1-i,0);
  469. for all x let laplace(f(x),x) = f(il!&);
  470. let f(0,0)=0, f(1,0)=1, f(2,0)=2, f(3,0)=3;
  471. laplace(1/2*a*df(-2/3*f(x)*c,x), x,p);
  472. - p*f(p)*a*c
  473. ---------------
  474. 3
  475. laplace(1/2*a*df(-2/3*f(x)*c,x,4), x,p);
  476. 4 2
  477. a*c*( - p *f(p) + p + 2*p + 3)
  478. ---------------------------------
  479. 3
  480. clear f(0,0), f(1,0), f(2,0), f(3,0);
  481. clear f;
  482. % Very complicated examples.
  483. on lmon;
  484. laplace(sin(a*x-b)**2, x, p);
  485. 2
  486. 2*a
  487. ------------------------
  488. (p*b)/a 2 2
  489. e *p*(p + 4*a )
  490. off mcd;
  491. laplace(x**3*(sin x)**4*e**(5*k*x)*c/2, x,p);
  492. -4 -4 -4
  493. c*(3/16*( - p + 4*i + 5*k) + 3/16*(p + 4*i - 5*k) - 3/4*( - p + 2*i + 5*k)
  494. -4 -4
  495. - 3/4*(p + 2*i - 5*k) + 9/8*( - p + 5*k) )
  496. a:=(sin x)**4*e**(5*k*x)*c/2;
  497. 5*k*x 4
  498. a := 1/2*e *sin(x) *c
  499. laplace(x**3*a,x,p);
  500. -4 -4 -4
  501. c*(3/16*( - p + 4*i + 5*k) + 3/16*(p + 4*i - 5*k) - 3/4*( - p + 2*i + 5*k)
  502. -4 -4
  503. - 3/4*(p + 2*i - 5*k) + 9/8*( - p + 5*k) )
  504. clear a;
  505. on mcd;
  506. % And so on, but is very time consuming.
  507. % laplace(e**(k*x)*x**2*sin(a*x-b)**2, x, p);
  508. % for all x let one(a*x-b)*one(c*x-d) = one(c*x-d);
  509. % laplace(x*e**(-2*x)*cos(a*x-b)*sinh(c*x-d), x, p);
  510. % for all x clear one(a*x-b)*one(c*x-d) ;
  511. % laplace(x*e**(c*x)*sin(k*x)**3*cosh(x)**2*cos(a*x), x, p);
  512. off lmon;
  513. % Error messages.
  514. laplace(sin(-x),x,p);
  515. ***** Laplace induces one( - x) which is not allowed
  516. laplace( - sin(x),x,p)
  517. on lmon;
  518. laplace(sin(-a*x), x, p);
  519. ***** Laplace induces one( - x*a) which is not allowed
  520. laplace( - sin(a*x),x,p)
  521. off lmon;
  522. laplace(e**(k*x**2), x, p);
  523. *** Laplace for e**(x**2*k) not known - try ON LMON
  524. 2
  525. k*x
  526. laplace(e ,x,p)
  527. laplace(sin(-a*x+b)*cos(c*x+d), x, p);
  528. *** Laplace for - cos(x*c + d)*sin(x*a - b) not known - try ON LMON
  529. laplace( - cos(c*x + d)*sin(a*x - b),x,p)
  530. laplace(x**(-5/2),x,p);
  531. *** Laplace for x**( - 5/2) not known - try ON LMON
  532. 1
  533. laplace(------------,x,p)
  534. 2
  535. sqrt(x)*x
  536. % With int arg, can't be shifted.
  537. laplace(intl(y*e**(a*y)*sin(k*y-tau),y,0,x), x, p);
  538. *** Laplace for sin(x*k - tau) not allowed
  539. a*x
  540. laplace(e *sin(k*x - tau)*x,x,p)
  541. ------------------------------------
  542. p
  543. laplace(cosh(x**2), x, p);
  544. *** Laplace for cosh(x**2) not known - try ON LMON
  545. 2
  546. laplace(cosh(x ),x,p)
  547. laplace(3*x/(x**2-5*x+6),x,p);
  548. *** Laplace for (x**2 - 5*x + 6)**(-1) not known - try ON LMON
  549. 3*x
  550. laplace(--------------,x,p)
  551. 2
  552. x - 5*x + 6
  553. laplace(1/sin(x),x,p);
  554. *** Laplace for sin(x)**(-1) not known - try ON LMON
  555. 1
  556. laplace(--------,x,p)
  557. sin(x)
  558. % But ...
  559. laplace(x/sin(-3*a**2),x,p);
  560. - 1
  561. --------------
  562. 2 2
  563. p *sin(3*a )
  564. % Severe errors.
  565. % laplace(sin x,x,cos y);
  566. % laplace(sin x,x,y+1);
  567. % laplace(sin(x+1),x+1,p);
  568. Comment Examples of Inverse Laplace transformations;
  569. symbolic(ordl!* := nil);
  570. % To nullify previous order declarations.
  571. order t;
  572. % Elementary ratio of polynomials.
  573. invlap(1/p, p, t);
  574. 1
  575. invlap(1/p**3, p, t);
  576. 2
  577. t
  578. ----
  579. 2
  580. invlap(1/(p-a), p, t);
  581. t*a
  582. e
  583. invlap(1/(2*p-a),p,t);
  584. (t*a)/2
  585. e
  586. ----------
  587. 2
  588. invlap(1/(p/2-a),p,t);
  589. 2*t*a
  590. 2*e
  591. invlap(e**(-k*p)/(p-a), p, t);
  592. t*a
  593. e
  594. ------
  595. a*k
  596. e
  597. invlap(b**(-k*p)/(p-a), p, t);
  598. t*a
  599. e
  600. ------
  601. a*k
  602. b
  603. invlap(1/(p-a)**3, p, t);
  604. t*a 2
  605. e *t
  606. ---------
  607. 2
  608. invlap(1/(c*p-a)**3, p, t);
  609. (t*a)/c 2
  610. e *t
  611. -------------
  612. 3
  613. 2*c
  614. invlap(1/(p/c-a)**3, p, t);
  615. t*a*c 2 3
  616. e *t *c
  617. --------------
  618. 2
  619. invlap((c*p-a)**(-1)/(c*p-a)**2, p, t);
  620. (t*a)/c 2
  621. e *t
  622. -------------
  623. 3
  624. 2*c
  625. invlap(c/((p/c-a)**2*(p-a*c)), p, t);
  626. t*a*c 2 3
  627. e *t *c
  628. --------------
  629. 2
  630. invlap(1/(p*(p-a)), p, t);
  631. t*a
  632. e - 1
  633. ----------
  634. a
  635. invlap(c/((p-a)*(p-b)), p, t);
  636. t*a t*b
  637. c*(e - e )
  638. -----------------
  639. a - b
  640. invlap(p/((p-a)*(p-b)), p, t);
  641. t*a t*b
  642. e *a - e *b
  643. -----------------
  644. a - b
  645. off mcd;
  646. invlap((p+d)/(p*(p-a)), p, t);
  647. t*a -1 t*a -1
  648. e *a *d + e - a *d
  649. invlap((p+d)/((p-a)*(p-b)), p, t);
  650. -1 t*a t*a t*b t*b
  651. (a - b) *(e *a + e *d - e *b - e *d)
  652. invlap(1/(e**(k*p)*p*(p+1)), p, t);
  653. - t + k
  654. - e + one(t - k)
  655. on mcd;
  656. off exp;
  657. invlap(c/(p*(p+a)**2), p, t);
  658. t*a
  659. - (a*t + 1 - e )*c
  660. -----------------------
  661. t*a 2
  662. e *a
  663. on exp;
  664. invlap(1, p, t);
  665. delta(t)
  666. invlap(c1*p/c2, p, t);
  667. df(delta(t),t)*c1
  668. -------------------
  669. c2
  670. invlap(p/(p-a), p, t);
  671. t*a
  672. delta(t) + e *a
  673. invlap(c*p**2, p, t);
  674. df(delta(t),t,2)*c
  675. invlap(p**2*e**(-a*p)*c, p, t);
  676. sub(t=t - a,df(delta(t),t,2))*c
  677. off mcd;
  678. invlap(e**(-a*p)*(1/p**2-p/(p-1))+c/p, p, t);
  679. t - a
  680. t - delta(t - a) - e - a + c
  681. on mcd;
  682. invlap(a*p**2-2*p+1, p, x);
  683. delta(x) + df(delta(x),x,2)*a - 2*df(delta(x),x)
  684. % P to non-integer power in denominator - i.e. gamma-function case.
  685. invlap(1/sqrt(p), p, t);
  686. 1
  687. ------------------
  688. sqrt(t)*sqrt(pi)
  689. invlap(1/sqrt(p-a), p, t);
  690. t*a
  691. e
  692. ------------------
  693. sqrt(t)*sqrt(pi)
  694. invlap(c/(p*sqrt(p)), p, t);
  695. 2*sqrt(t)*c
  696. -------------
  697. sqrt(pi)
  698. invlap(c*sqrt(p)/p**2, p, t);
  699. 2*sqrt(t)*c
  700. -------------
  701. sqrt(pi)
  702. invlap((p-a)**(-3/2), p, t);
  703. t*a
  704. 2*sqrt(t)*e
  705. ----------------
  706. sqrt(pi)
  707. invlap(sqrt(p-a)*c/(p-a)**2, p, t);
  708. t*a
  709. 2*sqrt(t)*e *c
  710. ------------------
  711. sqrt(pi)
  712. invlap(1/((p-a)*b*sqrt(p-a)), p, t);
  713. t*a
  714. 2*sqrt(t)*e
  715. ----------------
  716. sqrt(pi)*b
  717. invlap((p/(c1-3)-a)**(-3/2), p, t);
  718. t*a*c1
  719. 2*sqrt(t)*e *sqrt(c1 - 3)*(c1 - 3)
  720. -----------------------------------------
  721. 3*t*a
  722. sqrt(pi)*e
  723. invlap(1/((p/(c1-3)-a)*b*sqrt(p/(c1-3)-a)), p, t);
  724. t*a*c1
  725. 2*sqrt(t)*e *sqrt(c1 - 3)*(c1 - 3)
  726. -----------------------------------------
  727. 3*t*a
  728. sqrt(pi)*e *b
  729. invlap((p*2-a)**(-3/2), p, t);
  730. (t*a)/2
  731. sqrt(t)*e
  732. ------------------
  733. sqrt(pi)*sqrt(2)
  734. invlap(sqrt(2*p-a)*c/(p*2-a)**2, p, t);
  735. (t*a)/2
  736. sqrt(t)*e *sqrt(2)*c
  737. ----------------------------
  738. 2*sqrt(pi)
  739. invlap(c/p**(7/2), p, t);
  740. 2
  741. 8*sqrt(t)*t *c
  742. ----------------
  743. 15*sqrt(pi)
  744. invlap(p**(-7/3), p, t);
  745. 1/3
  746. t *t
  747. ------------
  748. 7
  749. gamma(---)
  750. 3
  751. invlap(gamma(b)/p**b,p,t);
  752. b
  753. t
  754. ----
  755. t
  756. invlap(c*gamma(b)*(p-a)**(-b),p,t);
  757. b t*a
  758. t *e *c
  759. -----------
  760. t
  761. invlap(e**(-k*p)/sqrt(p-a), p, t);
  762. t*a
  763. e
  764. ---------------------------
  765. a*k
  766. sqrt(pi)*e *sqrt(t - k)
  767. % Images that give elementary object functions.
  768. % Use of new switches lmon, lhyp.
  769. invlap(k/(p**2+k**2), p, t);
  770. 2*t*i*k
  771. i*( - e + 1)
  772. ---------------------
  773. t*i*k
  774. 2*e
  775. % This is made more readable by :
  776. on ltrig;
  777. invlap(k/(p**2+k**2), p, t);
  778. sin(t*k)
  779. invlap(p/(p**2+1), p, t);
  780. cos(t)
  781. invlap((p**2-a**2)/(p**2+a**2)**2, p, t);
  782. t*cos(t*a)
  783. invlap(p/(p**2+a**2)**2, p, t);
  784. t*sin(t*a)
  785. ------------
  786. 2*a
  787. invlap((p-a)/((p-a)**2+b**2), p, t);
  788. t*a
  789. e *cos(t*b)
  790. off ltrig;
  791. on lhyp;
  792. invlap(s/(s**2-k**2), s, t);
  793. cosh(t*k)
  794. invlap(e**(-tau/k*p)*p/(p**2-k**2), p, t);
  795. cosh(t*k - tau)
  796. off lhyp;
  797. % But it is not always possible to convert expt. functions, e.g.:
  798. on lhyp;
  799. invlap(k/((p-a)**2-k**2), p, t);
  800. sinh(t*k)*(cosh(t*a) + sinh(t*a))
  801. off lhyp;
  802. on ltrig;
  803. invlap(e**(-tau/k*p)*k/(p**2+k**2), p, t);
  804. 2*t*i*k 2*i*tau
  805. i*( - e + e )
  806. ----------------------------
  807. i*(t*k + tau)
  808. 2*e
  809. off ltrig;
  810. % In such situations use the default switches:
  811. invlap(k/((p-a)**2-k**2), p, t);
  812. t*a 2*t*k
  813. e *(e - 1)
  814. -------------------
  815. t*k
  816. 2*e
  817. % i.e. e**(a*t)*cosh(k*t).
  818. invlap(e**(-tau/k*p)*k/(p**2+k**2), p, t);
  819. 2*t*i*k 2*i*tau
  820. i*( - e + e )
  821. ----------------------------
  822. i*(t*k + tau)
  823. 2*e
  824. % i.e. sin(k*t-tau).
  825. % More complicated examples.
  826. off exp,mcd;
  827. invlap((p+d)/(p**2*(p-a)), p, t);
  828. t*a -2
  829. - ((d*t + 1)*a + d - e *(a + d))*a
  830. invlap(e**(-tau/k*p)*c/(p*(p-a)**2), p, t);
  831. -1
  832. - (k *tau - t)*a -1 -1 -2
  833. - (e *((k *tau - t)*a + 1) - one(t - k *tau))*a *c
  834. invlap(1/((p-a)*(p-b)*(p-c)), p, t);
  835. t*b 2 -1 t*c 2 -1
  836. - (e *(a*b - a*c - b + b*c) - e *(a*b - a*c - b*c + c )
  837. t*a 2 -1
  838. - e *(a - a*b - a*c + b*c) )
  839. invlap((p**2+g*p+d)/(p*(p-a)**2), p, t);
  840. t*a -2 -2 t*a -1
  841. - (e *(a *d - 1) - a *d - e *(a + a *d + g)*t)
  842. on exp,mcd;
  843. invlap(k*c**(-b*p)/((p-a)**2+k**2), p, t);
  844. t*a 2*b*i*k 2*t*i*k
  845. e *i*(c - e )
  846. ------------------------------
  847. t*i*k a*b + b*i*k
  848. 2*e *c
  849. on ltrig;
  850. invlap(c/(p**2*(p**2+a**2)), p, t);
  851. c*(t*a - sin(t*a))
  852. --------------------
  853. 3
  854. a
  855. invlap(1/(p**2-p+1), p, t);
  856. t/2 sqrt(3)*t
  857. 2*e *sin(-----------)
  858. 2
  859. -------------------------
  860. sqrt(3)
  861. invlap(1/(p**2-p+1)**2, p, t);
  862. t/2 sqrt(3)*t sqrt(3)*t
  863. 2*e *( - 3*t*cos(-----------) + 2*sqrt(3)*sin(-----------))
  864. 2 2
  865. ---------------------------------------------------------------
  866. 9
  867. invlap(2*a**2/(p*(p**2+4*a**2)), p, t);
  868. - cos(2*t*a) + 1
  869. -------------------
  870. 2
  871. % This is (sin(a*t))**2 and you can get this by using the let rules :
  872. for all x let sin(2*x)=2*sin x*cos x, cos(2*x)=(cos x)**2-(sin x)**2,
  873. (cos x)**2 =1-(sin x)**2;
  874. invlap(2*a**2/(p*(p**2+4*a**2)), p, t);
  875. 2
  876. sin(t*a)
  877. for all x clear sin(2*x),cos(2*x),cos(x)**2;
  878. off ltrig;
  879. on lhyp;
  880. invlap((p**2-2*a**2)/(p*(p**2-4*a**2)),p,t);
  881. cosh(2*t*a) + 1
  882. -----------------
  883. 2
  884. off lhyp;
  885. % Analogously, the above is (cosh(a*t))**2.
  886. % Floating arithmetic.
  887. invlap(2.55/((0.5*p-2.0)*(p-3.3333)), p, t);
  888. (33333*t)/10000 4*t
  889. 51000*( - e + e )
  890. ------------------------------------
  891. 6667
  892. on rounded;
  893. invlap(2.55/((0.5*p-2.0)*(p-3.3333)), p, t);
  894. 4.0*t 3.3333*t
  895. 7.64961751912*2.71828182846 - 7.64961751912*2.71828182846
  896. invlap(1.5/sqrt(p-0.5), p, t);
  897. 0.5*t
  898. 0.846284375322*2.71828182846
  899. -----------------------------------
  900. 0.5
  901. t
  902. invlap(2.75*p**2-0.5*p+e**(-0.9*p)/p, p, t);
  903. 2.75*df(delta(t),t,2) - 0.5*df(delta(t),t) + one(t - 0.9)
  904. invlap(1/(2.0*p-3.0)**3, p, t);
  905. 1.5*t 2
  906. 0.0625*2.71828182846 *t
  907. invlap(1/(2.0*p-3.0)**(3/2), p, t);
  908. 0.5 1.5*t
  909. 0.398942280401*t *2.71828182846
  910. invlap(1/(p**2-5.0*p+6), p, t);
  911. 3.0*t 2.0*t
  912. 2.71828182846 - 2.71828182846
  913. off rounded;
  914. % Adding new let rules for the invlap operator. note the syntax:
  915. for all x let invlap(log(gam*x)/x,x) = -log(lp!&);
  916. invlap(-1/2*log(gam*p)/p, p, t);
  917. log(t)
  918. --------
  919. 2
  920. invlap(-e**(-a*p)*log(gam*p)/(c*p), p, t);
  921. log(t - a)
  922. ------------
  923. c
  924. for all x clear invlap(1/x*log(gam*x),x);
  925. % Very complicated examples and use of factorizer.
  926. off exp,mcd;
  927. invlap(c**(-k*p)*(p**2+g*p+d)/(p**2*(p-a)**3), p, t);
  928. - (log(c)*k - t)*a -4
  929. (e - 1)*(a*g + 3*d)*a
  930. - (log(c)*k - t)*a 2 -1 -2
  931. + 1/2*e *( - t + log(c)*k) *(a *g + a *d + 1)
  932. - (log(c)*k - t)*a -3
  933. + (e *(a*g + 2*d) + d)*(log(c)*k - t)*a
  934. on exp,mcd;
  935. invlap(1/(2*p**3-5*p**2+4*p-1), p, t);
  936. t t/2 t
  937. e *t + 2*e - 2*e
  938. on ltrig,lhyp;
  939. invlap(1/(p**4-a**4), p, t);
  940. - sin(t*a) + sinh(t*a)
  941. -------------------------
  942. 3
  943. 2*a
  944. invlap(1/((b-3)*p**4-a**4*(2+b-5)), p, t);
  945. - sin(t*a) + sinh(t*a)
  946. -------------------------
  947. 3
  948. 2*a *(b - 3)
  949. off ltrig,lhyp;
  950. % The next three examples are the same:
  951. invlap(c/(p**3/8-9*p**2/4+27/2*p-27)**2,p,t);
  952. 6*t 5
  953. 8*e *t *c
  954. -------------
  955. 15
  956. invlap(c/(p/2-3)**6,p,t);
  957. 6*t 5
  958. 8*e *t *c
  959. -------------
  960. 15
  961. off exp;
  962. a:=(p/2-3)**6;
  963. 6
  964. (p - 6)
  965. a := ----------
  966. 64
  967. on exp;
  968. invlap(c/a, p, t);
  969. 6*t 5
  970. 8*e *t *c
  971. -------------
  972. 15
  973. clear a;
  974. % The following two examples are the same :
  975. invlap(c/(p**4+2*p**2+1)**2, p, t);
  976. 2*t*i 3 3 2*t*i 2 2 2*t*i 2*t*i
  977. (c*(e *t + t + 6*e *t *i - 6*t *i - 15*e *t - 15*t - 15*e *i
  978. t*i
  979. + 15*i))/(96*e )
  980. invlap(c/((p-i)**4*(p+i)**4),p,t);
  981. 2*t*i 3 3 2*t*i 2 2 2*t*i 2*t*i
  982. (c*(e *t + t + 6*e *t *i - 6*t *i - 15*e *t - 15*t - 15*e *i
  983. t*i
  984. + 15*i))/(96*e )
  985. % The following three examples are the same :
  986. invlap(e**(-k*p)/(2*p-3)**6, p, t);
  987. (3*t)/2 5 4 3 2 2 3 4 5
  988. e *(t - 5*t *k + 10*t *k - 10*t *k + 5*t*k - k )
  989. ------------------------------------------------------------
  990. (3*k)/2
  991. 7680*e
  992. invlap(e**(-k*p)/(4*p**2-12*p+9)**3, p, t);
  993. (3*t)/2 5 4 3 2 2 3 4 5
  994. e *(t - 5*t *k + 10*t *k - 10*t *k + 5*t*k - k )
  995. ------------------------------------------------------------
  996. (3*k)/2
  997. 7680*e
  998. invlap(e**(-k*p)/(8*p**3-36*p**2+54*p-27)**2, p, t);
  999. (3*t)/2 5 4 3 2 2 3 4 5
  1000. e *(t - 5*t *k + 10*t *k - 10*t *k + 5*t*k - k )
  1001. ------------------------------------------------------------
  1002. (3*k)/2
  1003. 7680*e
  1004. % Error messages.
  1005. invlap(e**(a*p)/p, p, t);
  1006. *** Invlap for e**(p*a)/p not known
  1007. a*p
  1008. e
  1009. invlap(------,p,t)
  1010. p
  1011. invlap(c*p*sqrt(p), p, t);
  1012. *** Invlap for sqrt(p)*p not known
  1013. invlap(sqrt(p)*c*p,p,t)
  1014. invlap(sin(p), p, t);
  1015. *** Invlap for sin(p) not known
  1016. invlap(sin(p),p,t)
  1017. invlap(1/(a*p**3+b*p**2+c*p+d),p,t);
  1018. *** Invlap for (p**3*a + p**2*b + p*c + d)**(-1) not known
  1019. 1
  1020. invlap(-----------------------,p,t)
  1021. 3 2
  1022. a*p + b*p + c*p + d
  1023. invlap(1/(p**2-p*sin(p)+a**2),p,t);
  1024. *** Invlap for (p**2 - p*sin(p) + a**2)**(-1) not known
  1025. - 1
  1026. invlap(--------------------,p,t)
  1027. 2 2
  1028. sin(p)*p - a - p
  1029. on rounded;
  1030. invlap(1/(p**3-1), p, t);
  1031. *** Invlap for (p**3 - 1)**(-1) not known
  1032. 1
  1033. invlap(--------,p,t)
  1034. 3
  1035. p - 1
  1036. off rounded;
  1037. % Severe errors:
  1038. %invlap(1/(p**2+1), p+1, sin(t) );
  1039. %invlap(p/(p+1)**2, sin(p), t);
  1040. end;
  1041. Time for test: 680 ms, plus GC time: 90 ms