Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*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 2006

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

Search the Archive

Re: How to treat this false singular point?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg68414] Re: How to treat this false singular point?
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Fri, 4 Aug 2006 03:59:28 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <easkcp$g3j$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

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?