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