-1

我需要比较的两个方程之间的系数数量不同。IE:

    Y = coef3*X^3 + coef2*X^2 + coef1*X + coef0

这些系数可以是 0-> inf 的任何值。

我需要将每个方程与之前的方程进行比较,并返回这两个方程之间的百分比差异。我有 X、Y 的值,以及我需要找到百分比差异的每个方程的系数。

我可以取两个已知 Y 值之间的标准百分比差异并计算百分比差异,但由于这些是多项式,百分比差异总是会发生变化。

我还可以取一个具有设定半径的圆,并找到每个方程与该圆相对于 X 轴相交的角度,以便找到可以与 90 度等于 100% 变化的百分比相关的度数方程之间。然而,我不确定这是否准确,因为圆圈之外的任何东西都会有可能不同的百分比差异。

这将用 Perl 编写。

4

1 回答 1

1

我假设如果您提交以下内容,您的老师现在会为您提供帮助:

#!/usr/bin/env perl

use 5.012;
use strict;
use warnings;

use List::Util qw( sum );

my @f = map polynomial_maker(@$_), (
    [4, 2, 1], # 4x^2 + 2x + 1
    [10, undef, undef, undef, 1, 0], # 10x^5 + x
);

my @v = (1, 2, 3, 4);

for my $f (@f) {
    for my $i (1 .. $#v) {
        my $y0 = $f->($v[$i - 1]);
        my $y1 = $f->($v[$i]);
        printf "y0 = %.2f\ty1 = %.2f\t%% ch = %.2f\n",
            $y0,
            $y1,
            100 * (($y1 - $y0) / $y0)
        ;
    }
    say '-' x 80;
}

sub polynomial_maker {
    my @coeff = reverse @_;
    return sub {
        no warnings 'uninitialized';
        sum map $coeff[$_] * ($_[0]**$_), 0 .. $#coeff;
    };
}
于 2013-04-04T14:52:00.587 回答