MathGroup Archive 2006

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

Search the Archive

Re: How to treat this false singular point?


simon yang wrote:
> Dear everyone,
> I have a function:
> f[x_]:=(x-x1)Log[Abs[x-x1]] + (x-x2)Log[Abs[x-x2]] + ... +
> (x-xn)Log[Abs[x-xn]],
> {x1,x2,...,xn}={100,200,300,...} for instance
> How to get value: f[x] as there are different singular at different x?
> I know at x=xn, f[x]==1, But Mathematica return: "Indeterminate", What
> should I do?
>  what others do in C++, Fortran ?

Use some *If* statements around each term for instance.

In[1]:=
f[x_] := If[x != 100, (x - 100)*Log[Abs[x - 100]], 0] +
          If[x != 200, (x - 200)*Log[Abs[x - 200]], 0] +
          If[x != 300, (x - 300)*Log[Abs[x - 300]], 0]

In[2]:=
f[50]

Out[2]=
-50*Log[50] - 150*Log[150] - 250*Log[250]

In[3]:=
f[100.]

Out[3]=
-1520.18

In[4]:=
f[200]

Out[4]=
0

In[5]:=
Plot[f[x], {x, 0, 500}];

HTH,
Jean-Marc


  • Prev by Date: Something in the spirit of letrec
  • Next by Date: Re: Zero times a variable in numerical calculations
  • Previous by thread: Re: How to treat this false singular point?
  • Next by thread: Re: How to treat this false singular point?