Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将分段多项式函数转换为单个表达式/模型 简报_Java_Math_Numerical Methods_Polynomial Math_Numerical Analysis - Fatal编程技术网

Java 将分段多项式函数转换为单个表达式/模型 简报

Java 将分段多项式函数转换为单个表达式/模型 简报,java,math,numerical-methods,polynomial-math,numerical-analysis,Java,Math,Numerical Methods,Polynomial Math,Numerical Analysis,假设我们有一个连续的分段多项式,我们如何通过任何编程语言(最好是Java)用一个方程或公式来表达它 在纯数学中,我发现可以用积分或阶梯函数来表示函数。但我找不到的答案是,如果可能的话,如何在编程中进行表示 更多 可以将x传递给,比如,a,然后得到它的y值。 但函数真正做的是对存储在对象中的多项式数组进行二进制搜索,替换为正确的多项式并返回值 public double value(double v) { if (v < knots[0] || v > knots[n

假设我们有一个连续的分段多项式,我们如何通过任何编程语言(最好是Java)用一个方程或公式来表达它

在纯数学中,我发现可以用积分或阶梯函数来表示函数。但我找不到的答案是,如果可能的话,如何在编程中进行表示

更多 可以将x传递给,比如,a,然后得到它的y值。

但函数真正做的是对存储在对象中的多项式数组进行二进制搜索,替换为正确的多项式并返回值

public double value(double v) {
        if (v < knots[0] || v > knots[n]) {
            throw new OutOfRangeException(v, knots[0], knots[n]);
        }
        int i = Arrays.binarySearch(knots, v);
        if (i < 0) {
            i = -i - 2;
        }
        // This will handle the case where v is the last knot value
        // There are only n-1 polynomials, so if v is the last knot
        // then we will use the last polynomial to calculate the value.
        if ( i >= polynomials.length ) {
            i--;
        }
    return polynomials[i].value(v - knots[i]);
}

@阿瑟伯。重点是将“公式”打印到文档中。然后编写此类公式的典型方法是使用一个大左括号,每行区分一个案例。或者你可以用索引定义一组区间,[a_i,b_i)并为每个i定义多项式P_i@ArthurB.所以不可能把它写成一个公式,对吧?这取决于公式的意思。如果允许在公式中包含指示函数,那么如果样条曲线是多边形p1的值,如果x在区间I1,p2的值,如果x在区间I2,那么你可以写样条曲线=Ind_I1*p1+Ind_I2*p2+。。。
public double value(double x) {
            // the function will do more complex computation here (e.g. integration)
            return a*Math.pow(x, 3) + b*Math.pow(x, 2) + c*x + d;
}