Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Programing operations with lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg50880] Re: Programing operations with lists
  • From: Bill Rowe <readnewsciv at earthlink.net>
  • Date: Sat, 25 Sep 2004 01:55:29 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

On 9/24/04 at 4:41 AM, guillerm at aida.usal.es (Guillermo Sanchez)
wrote:

>I have two lists with this pattern

>list1={{a1 , b1}, ..., {ai , bi}, ...};

>list2={c1, ..., c(j-1),  cj, ...};

>and a function f[x] (ie: f[x_] = 0.2 x);

>I would like grouping and sum the product bi f[ai] where C(j-1)<ai<
>cj


>I show it with an example:

>list1 = {{0.71, 7378}, {1.6, 768}, {2, 2269}, {2.05, 0}, {2.35, 0},
>{2.4, 2608}, {2.6, 193}, {2.8, 4187}, {2.85, 204}, {2.95, 134},
>{3.2,776}, {3.25, 24}, {3.6, 6209}, {3.65, 0}, {3.7, 2809}, {3.95,
>1923}, {4,2627}, {4.1, 25}, {4.15, 1}, {4.2, 0}, {4.25, -15},
>{4.35, 1863}, {4.4, 1797}, {4.45, 7533}, {4.5, 0}, {4.55, 53},
>{4.7, 12045}, {4.9, 7304}, {4.95, 34}}; 

>list2 = {0.71, 3.2, 4, 4.5, 5}

>The solution should be:

>{{7378 f[0.71] + .. +134 f[2.95]}, ... , {53 f[4.55]+...+34
>f[4.95]}}

It looks to me like the following solves the problem

<<Statistics`

fsum[x_List, y_List, f_] := 
  Module[{s = RangeLists[x[[All,1]], y], sp}, 
   sp[data_, lis_] := Select[data, 
      MemberQ[lis, First[ #1]] & ]; 
    s = (sp[list1, #1] & ) /@ DeleteCases[s, {}]; 
    Total /@ Table[
      (Last[#1]*f[First[#1]] & ) /@ s[[n]], 
      {n, Length[s]}]]
 

fsum[list1, list2, f]
{7378*f[0.71] + 768*f[1.6] + 
   2269*f[2] + 2608*f[2.4] + 
   193*f[2.6] + 4187*f[2.8] + 
   204*f[2.85] + 134*f[2.95], 
  776*f[3.2] + 24*f[3.25] + 
   6209*f[3.6] + 
   2809*f[3.7] + 
   1923*f[3.95], 2627*f[4] + 
   25*f[4.1] + f[4.15] - 
   15*f[4.25] + 
   1863*f[4.35] + 
   1797*f[4.4] + 
   7533*f[4.45], 53*f[4.55] + 
   12045*f[4.7] + 
   7304*f[4.9] + 34*f[4.95]}
--
To reply via email subtract one hundred and four


  • Prev by Date: Re: Integrating Feynman integrals in mathematica
  • Next by Date: Re: Programing operations with lists
  • Previous by thread: Re: Programing operations with lists
  • Next by thread: Re: Programing operations with lists