{"id":2375,"date":"2016-04-29T05:30:11","date_gmt":"2016-04-29T03:30:11","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2375"},"modified":"2022-03-25T20:19:15","modified_gmt":"2022-03-25T18:19:15","slug":"operaciones-con-series-de-potencia-1s","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/operaciones-con-series-de-potencia-1s\/","title":{"rendered":"Operaciones con series de potencias"},"content":{"rendered":"<p>Una <a href=\"http:\/\/bit.ly\/1SCam1W\">serie de potencias<\/a> es una serie de la forma<\/p>\n<pre lang=\"text\">\n   a\u2080 + a\u2081x + a\u2082x\u00b2 + a\u2083x\u00b3 + ...\n<\/pre>\n<p>Las series de potencias se pueden representar mediante listas<br \/>\ninfinitas. Por ejemplo, la serie de la funci\u00f3n exponencial es<\/p>\n<pre lang=\"text\">\n   e^x = 1 + x + x\u00b2\/2! + x\u00b3\/3! + ...\n<\/pre>\n<p>y se puede representar por [1, 1, 1\/2, 1\/6, 1\/24, 1\/120, &#8230;]<\/p>\n<p>Las operaciones con series se pueden ver como una generalizaci\u00f3n de las de los polinomios.<\/p>\n<p>En lo que sigue, usaremos el tipo (Serie a) para representar las series de potencias con coeficientes en a y su definici\u00f3n es<\/p>\n<pre lang=\"text\">\n   type Serie a = [a]\n<\/pre>\n<p>Definir las siguientes funciones<\/p>\n<pre lang=\"text\">\n   opuesta      :: Num a => Serie a -> Serie a\n   suma         :: Num a => Serie a -> Serie a -> Serie a\n   resta        :: Num a => Serie a -> Serie a -> Serie a\n   producto     :: Num a => Serie a -> Serie a -> Serie a\n   cociente     :: Fractional a => Serie a -> Serie a -> Serie a\n   derivada     :: (Num a, Enum a) => Serie a -> Serie a\n   integral     :: (Fractional a, Enum a) => Serie a -> Serie a\n   expx         :: Serie Rational\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(opuesta xs) es la opuesta de la serie xs. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (opuesta [-6,-4..])\n     [6,4,2,0,-2,-4,-6]\n<\/pre>\n<ul>\n<li>(suma xs ys) es la suma de las series xs e ys. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (suma [1,3..] [2,4..])\n     [3,7,11,15,19,23,27]\n<\/pre>\n<ul>\n<li>(resta xs ys) es la resta de las series xs es ys. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (resta [3,5..] [2,4..])\n     [1,1,1,1,1,1,1]\n     \u03bb> take 7 (resta ([3,7,11,15,19,23,27] ++ repeat 0) [1,3..])\n     [2,4,6,8,10,12,14]\n<\/pre>\n<ul>\n<li>(producto xs ys) es el producto de las series xs e ys. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (producto [3,5..] [2,4..])\n     [6,22,52,100,170,266,392]\n<\/pre>\n<ul>\n<li>(cociente xs ys) es el cociente de las series xs e ys. Por ejemplo, <\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (cociente ([6,22,52,100,170,266,392] ++ repeat 0) [3,5..])\n     [2.0,4.0,6.0,8.0,10.0,12.0,14.0]\n<\/pre>\n<ul>\n<li>(derivada xs) es la derivada de la serie xs. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (derivada [2,4..])\n     [4,12,24,40,60,84,112]\n<\/pre>\n<ul>\n<li>(integral xs) es la integral de la serie xs. Por ejemplo, <\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 7 (integral ([4,12,24,40,60,84,112] ++ repeat 0))\n     [0.0,4.0,6.0,8.0,10.0,12.0,14.0]\n<\/pre>\n<ul>\n<li>expx es la serie de la funci\u00f3n exponencial. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 8 expx\n     [1 % 1,1 % 1,1 % 2,1 % 6,1 % 24,1 % 120,1 % 720,1 % 5040]\n     \u03bb> take 8 (derivada expx)\n     [1 % 1,1 % 1,1 % 2,1 % 6,1 % 24,1 % 120,1 % 720,1 % 5040]\n     \u03bb> take 8 (integral expx)\n     [0 % 1,1 % 1,1 % 2,1 % 6,1 % 24,1 % 120,1 % 720,1 % 5040]\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\ntype Serie a = [a] \n\nopuesta :: Num a => Serie a -> Serie a\nopuesta = map negate\n\nsuma :: Num a => Serie a -> Serie a -> Serie a\nsuma = zipWith (+)\n\nresta :: Num a => Serie a -> Serie a -> Serie a\nresta xs ys = suma xs (opuesta ys)\n\nproducto :: Num a => Serie a -> Serie a -> Serie a\nproducto (x:xs) zs@(y:ys) = \n    x*y : suma (producto xs zs) (map (x*) ys)\n\ncociente :: Fractional a => Serie a -> Serie a -> Serie a\ncociente (x:xs) (y:ys) = zs \n    where zs = x\/y : map (\/y) (resta xs (producto zs ys))  \n\nderivada :: (Num a, Enum a) => Serie a -> Serie a\nderivada (_:xs) = zipWith (*) xs [1..]\n\nintegral :: (Fractional a, Enum a) => Serie a -> Serie a\nintegral xs = 0 : zipWith (\/) xs [1..]\n\nexpx :: Serie Rational\nexpx = map (1\/) (map fromIntegral factoriales)\n\n-- factoriales es la lista de los factoriales. Por ejemplo, \n--    take 7 factoriales  ==  [1,1,2,6,24,120,720]\nfactoriales :: [Integer]\nfactoriales = 1 : scanl1 (*) [1..]\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Una serie de potencias es una serie de la forma a\u2080 + a\u2081x + a\u2082x\u00b2 + a\u2083x\u00b3 + &#8230; Las series de potencias se pueden representar mediante listas infinitas. Por ejemplo, la serie de la funci\u00f3n exponencial es e^x = 1 + x + x\u00b2\/2! + x\u00b3\/3! + &#8230; y se puede representar por [1,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[7],"tags":[183,415,10,11,252,76],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2375"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=2375"}],"version-history":[{"count":6,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2375\/revisions"}],"predecessor-version":[{"id":2421,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2375\/revisions\/2421"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}