Return-Path: X-Original-To: apmail-commons-user-archive@www.apache.org Delivered-To: apmail-commons-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4C421CE53 for ; Thu, 31 May 2012 14:55:31 +0000 (UTC) Received: (qmail 30894 invoked by uid 500); 31 May 2012 14:55:30 -0000 Delivered-To: apmail-commons-user-archive@commons.apache.org Received: (qmail 30796 invoked by uid 500); 31 May 2012 14:55:30 -0000 Mailing-List: contact user-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Users List" Delivered-To: mailing list user@commons.apache.org Received: (qmail 30788 invoked by uid 99); 31 May 2012 14:55:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 May 2012 14:55:30 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of kurt.pernstich@gmail.com designates 209.85.160.180 as permitted sender) Received: from [209.85.160.180] (HELO mail-gh0-f180.google.com) (209.85.160.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 May 2012 14:55:23 +0000 Received: by ghbz12 with SMTP id z12so934524ghb.39 for ; Thu, 31 May 2012 07:55:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=UOP5AYxqrWEfye3rjWwavadZWEbrcBgrZzRDiX0zQEw=; b=1DS/9PAQSSIlC0GHxafQhKK5x8tGbYKRi+2OrqG7h1N0FE4kJpzdFuavBWuXRxQkze OLIPgUo+HDBnTboJZ6NwRQrjw9rNO7Vj9c4rkoLv/e939MXWfpDq9MauqyaeGREC0CQv FgRtcwQw5kuxi20kcMDrlXwnvJm6BOAwvhY5LFk7KjHfb8e35ZpsyI1u0dF2BEfKsKaY KtBAtcwkh0myRrAWSgYcgViU1tRZG+QmqnvGC46zXYxTA7NAcvP+8+iUQoYC7p2ldabY 0bXAa/E2qNqMVuC1CCsjpRdV+JTht+zv9N992UTcIRQhrPlWE0oTnfxD97+cxCBF+pfH 3XWg== MIME-Version: 1.0 Received: by 10.101.106.22 with SMTP id i22mr739082anm.39.1338476102909; Thu, 31 May 2012 07:55:02 -0700 (PDT) Received: by 10.236.203.105 with HTTP; Thu, 31 May 2012 07:55:02 -0700 (PDT) Date: Thu, 31 May 2012 10:55:02 -0400 Message-ID: Subject: [math] PolynomialFitter.fit() stalls From: Kurt Pernstich To: user@commons.apache.org Content-Type: multipart/alternative; boundary=00504501708ea77ef504c156403c X-Virus-Checked: Checked by ClamAV on apache.org --00504501708ea77ef504c156403c Content-Type: text/plain; charset=ISO-8859-1 Hi, in certain cases I ran into the problem that the PolynomialFitter.fit() method stalls, meaning that it does not return, nor throw an Exception. Is there a way to tell the PolynomialFitter to iterate only N-times to ensure that my program does not stall? Maybe I should note that when I used a LevenbergMarquardOptimizer instead of a GaussNewtonOptimizer the fit worked fine for the limited number of test cases considered, but this is not a guarantee that the LevenbergMarquardOptimizer will work for all cases. Here is a test case that stalls the PolynomialFitter.fit() on my machine: PolynomialFitter RshuntFitter = new PolynomialFitter(1, new GaussNewtonOptimizer()); RshuntFitter.addObservedPoint(-0.2, -7.12442E-13); RshuntFitter.addObservedPoint(-0.199, -4.33397E-13); RshuntFitter.addObservedPoint(-0.198, -2.823E-13); RshuntFitter.addObservedPoint(-0.197, -1.40405E-13); RshuntFitter.addObservedPoint(-0.196, -7.80821E-15); RshuntFitter.addObservedPoint(-0.195, 6.20484E-14); RshuntFitter.addObservedPoint(-0.194, 7.24673E-14); RshuntFitter.addObservedPoint(-0.193, 1.47152E-13); RshuntFitter.addObservedPoint(-0.192, 1.9629E-13); RshuntFitter.addObservedPoint(-0.191, 2.12038E-13); RshuntFitter.addObservedPoint(-0.19, 2.46906E-13); RshuntFitter.addObservedPoint(-0.189, 2.77495E-13); RshuntFitter.addObservedPoint(-0.188, 2.51281E-13); RshuntFitter.addObservedPoint(-0.187, 2.64001E-13); RshuntFitter.addObservedPoint(-0.186, 2.8882E-13); RshuntFitter.addObservedPoint(-0.185, 3.13604E-13); RshuntFitter.addObservedPoint(-0.184, 3.14248E-13); RshuntFitter.addObservedPoint(-0.183, 3.1172E-13); RshuntFitter.addObservedPoint(-0.182, 3.12912E-13); RshuntFitter.addObservedPoint(-0.181, 3.06761E-13); RshuntFitter.addObservedPoint(-0.18, 2.8559E-13); RshuntFitter.addObservedPoint(-0.179, 2.86806E-13); RshuntFitter.addObservedPoint(-0.178, 2.985E-13); RshuntFitter.addObservedPoint(-0.177, 2.67148E-13); RshuntFitter.addObservedPoint(-0.176, 2.94173E-13); RshuntFitter.addObservedPoint(-0.175, 3.27528E-13); RshuntFitter.addObservedPoint(-0.174, 3.33858E-13); RshuntFitter.addObservedPoint(-0.173, 2.97511E-13); RshuntFitter.addObservedPoint(-0.172, 2.8615E-13); RshuntFitter.addObservedPoint(-0.171, 2.84624E-13); PolynomialFunction RshuntFit = new PolynomialFunction(RshuntFitter.fit()); Thanks for your help, Kurt --00504501708ea77ef504c156403c--