System and method for curve fitting using randomized techniques
First Claim
1. A computer-implemented method for curve fitting, the method comprising:
- (a) storing a plurality of data points in a memory of the computer;
(b) generating a curve based on two or more random points of the plurality of data points;
(c) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results;
(d) performing (b) and (c) a plurality of times to determine a curve which meets first criteria, wherein said performing (b) and (c) a plurality of times comprises performing (b) and (c) in an iterative manner until ending criteria are met; and
(e) if said first test results meet said first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method for performing a curve fit on a plurality of data points. In an initial phase, a subset Pmax of the plurality of points which represents an optimal curve is determined. This phase is based on a statistical model which dictates that after trying at most Nmin random curves, each connecting a randomly selected two or more points from the input set, one of the curves will pass within a specified radius of the subset Pmax of the input points. The subset Pmax may then be used in the second phase of the method, where a refined curve fit is made by iteratively culling outliers from the subset Pmax with respect to a succession of optimal curves fit to the modified subset Pmax at each iteration. The refined curve fit generates a refined curve, which may be output along with a final culled subset Kfinal of Pmax.
-
Citations
48 Claims
-
1. A computer-implemented method for curve fitting, the method comprising:
-
(a) storing a plurality of data points in a memory of the computer;
(b) generating a curve based on two or more random points of the plurality of data points;
(c) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results;
(d) performing (b) and (c) a plurality of times to determine a curve which meets first criteria, wherein said performing (b) and (c) a plurality of times comprises performing (b) and (c) in an iterative manner until ending criteria are met; and
(e) if said first test results meet said first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A memory medium operable to store program instructions for performing a curve fit on a stored plurality of data points, wherein the program instructions are executable by a processor to perform:
-
(a) generating a curve based on two or more random points of the plurality of data points;
(b) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results;
(c) performing (a) and (b) a plurality of times to determine a curve which meets first criteria, wherein said performing (a) and (b) a plurality of times comprises performing (a) and (b) in an iterative manner until ending criteria are met; and
(d) if said first test results meet said first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A computer based system for performing a curve fit, comprising:
-
a CPU;
a memory medium coupled to the CPU, wherein the memory medium is operable to store program instructions, and wherein the CPU is operable to execute the program instructions; and
an input which is operable to receive a plurality of data points for storage in the memory medium;
wherein the program instructions are executable by the CPU to;
(a) generate a curve based on two or more random points of the plurality of data points;
(b) test the curve against a first subset of the plurality of data points, to produce first test results, wherein the first subset is less than all of the plurality of data points;
(c) perform (a) and (b) a plurality of times to determine a curve which meets first criteria, wherein said performing (a) and (b) a plurality of times comprises performing (a) and (b) in an iterative manner until ending criteria are met, and wherein said ending criteria comprise one or more of;
the number of iterations meeting or exceeding an iteration threshold; and
a number of data points of the plurality of data points within a specified radius of the curve meeting or exceeding a specified minimum value; and
if said first test results meet said first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A computer-implemented method for curve fitting, the method comprising:
-
(a) storing a plurality of data points;
(b) generating a curve based on two or more random points of the plurality of data points;
(c) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing includes determining a number of the first subset of the plurality of data points which are within a specified radius of the curve, wherein said testing the curve against a first subset produces first test results, wherein said first test results include said number of the first subset of the plurality of data points which are within the specified radius of the curve; and
if said first test results meet first criteria, performing steps (d) and (e);
(d) testing the curve against a second subset of the plurality of data points, wherein said testing the curve against a second subset of the plurality of data points produces second test results; and
(e) if said second test results meet second criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. A computer-implemented method for curve fitting, the method comprising:
-
a) storing a plurality of data points;
b) generating a curve based on two or more random points of the plurality of data points;
c) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results, wherein said testing the curve against a first subset of the plurality of data points comprises;
determining a number of the first subset of the plurality of data points which are within a specified radius of the curve, wherein said first test results comprise said number of the first subset of the plurality of data points which are within the specified radius of the curve;
d) if said first test results meet first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (39)
-
-
40. A computer-implemented method for curve fitting, the method comprising:
-
a) storing a plurality of data points;
b) generating a curve based on two or more random points of the plurality of data points;
c) testing the curve against a first subset of the plurality of data points, wherein said testing produces first test results;
d) if said first test results meet first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points;
e) performing a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of data points comprising data points within a specified radius of the curve, wherein the refined curve fit comprises iteratively culling outlying data points from the second subset, generating a culled subset of data points, and fitting a new curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and f) generating and storing output, comprising one or more of information regarding the refined curve, wherein said information specifies the refined curve fit of the plurality of data points, and the culled subset of the plurality of data points. - View Dependent Claims (41)
-
-
42. A memory medium operable to store program instrucfions for performing a curve fit on a stored plurality of data points, wherein the program instructions are executable by a processor to perform:
-
(a) generating a curve based on two or more random points of the plurality of data points;
(b) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein the first subset comprises randomly selected points from the plurality of data points, wherein said testing produces first test results; and
if said first test results meet first criteria, (c) testing the curve against a second subset of the plurality of data points, wherein the second subset is less than all of the plurality of data points, wherein said testing produces second test results;
(d) performing (a) through (c) a plurality of times to determine a curve which meets second criteria; and
(e) if said second test results meet second criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points. - View Dependent Claims (43, 44)
-
-
45. A memory medium operable to store program instructions for performing a curve fit on a stored plurality of data points, wherein the program instructions are executable by a processor to perform:
-
a) generating a curve based on two or more random points of the plurality of data points;
b) testing the curve against a first subset of the plurality of data points, wherein said testing produces first test results;
c) performing (a) and (b) a plurality of times to determine a curve which meets first criteria;
d) if said first test results meet first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points;
e) performing a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of data points comprising data points within a specified radius of the curve, wherein the refined curve fit comprises iteratively culling outlying data points from the second subset, generating a culled subset of data points, and fitting a new curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and f) generating and storing output, comprising one or more of information regarding the refined curve, wherein said information specifies the refined curve fit of the plurality of data points, and the culled subset of the plurality of data points.
-
-
46. A memory medium operable to store program instructions for performing a curve fit on a stored plurality of data points, wherein the program instructions are executable by a processor to perform:
-
(a) generating a curve based on two or more random points of the plurality of data points;
(b) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results;
(c) performing (a) and (b) a plurality of times to determine a curve which meets first criteria, wherein said performing (a) and (b) a plurality of times comprises performing (a) and (b) in an iterative manner until ending criteria are met, and wherein said ending criteria comprise one or more of;
the number of iterations meeting or exceeding an iteration threshold; and
a number of data points of the plurality of data points within a specified radius of the curve meeting or exceeding a specified minimum value; and
(d) if said first test results meet first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points.
-
-
47. A computer-implemented method for curve fitting, the method comprising:
-
(a) storing a plurality of data points;
(b) generating a curve based on two or more random points of the plurality of data points;
(c) testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said testing produces first test results;
(d) performing (b) and (c) a plurality of times to determine a curve which meets first criteria, wherein said performing (b) and (c) a plurality of times comprises performing (b) and (c) in an iterative manner until ending criteria are met, and wherein said ending criteria comprise one or more of;
the number of iterations meeting or exceeding an iteration threshold; and
a number of data points of the plurality of data points within a specified radius of the curve meeting or exceeding a specified minimum value; and
(e) if said first test results meet first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points.
-
-
48. A computer-implemented method for curve fitting, the method comprising:
-
(a) generating a curve based on two or more random points of a stored plurality of data points;
(b) pre-testing the curve against a first subset of the plurality of data points, wherein the first subset is less than all of the plurality of data points, wherein said pre-testing produces first test results, wherein said first subset is a random subset comprising randomly selected points from the plurality of data points; and
(c) if said first test results meet first criteria, testing the curve against a second subset of the plurality of data points, wherein said testing produces second test results;
(d) performing (a) through (c) a plurality of times to determine a curve which meets second criteria; and
(e) if said second test results meet said first criteria, storing information regarding the curve, wherein said information specifies a curve fit of the plurality of data points.
-
Specification