Perl 计算方程式之间的百分比差
我需要比较两个方程中不同数量的系数。 即: 这些系数可以是0->inf之间的任意值 我需要将每个方程与前面的方程进行比较,并返回这两个方程之间的百分比差。我有X,Y的值,还有每个方程的系数,我需要找到它们的差异百分比 我可以取两个已知Y值之间的标准百分比差,然后计算百分比差,但是因为这是多项式,百分比差总是会变化的 我也可以取一个设定半径的圆,求出每个方程与该圆相对于X轴的交角,以求出一个度,它可以与一个百分比相关,90度等于方程之间100%的变化。但我不确定这是否准确,因为圆圈之外的任何东西都可能有不同的百分比差异Perl 计算方程式之间的百分比差,perl,math,Perl,Math,我需要比较两个方程中不同数量的系数。 即: 这些系数可以是0->inf之间的任意值 我需要将每个方程与前面的方程进行比较,并返回这两个方程之间的百分比差。我有X,Y的值,还有每个方程的系数,我需要找到它们的差异百分比 我可以取两个已知Y值之间的标准百分比差,然后计算百分比差,但是因为这是多项式,百分比差总是会变化的 我也可以取一个设定半径的圆,求出每个方程与该圆相对于X轴的交角,以求出一个度,它可以与一个百分比相关,90度等于方程之间100%的变化。但我不确定这是否准确,因为圆圈之外的任何东西都
这将用Perl编写 如果您提交以下内容,我假设您的老师现在会帮助您:
#!/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;
};
}
很难理解你的意思。这里的大背景是什么?你想实现什么?在代码方面,你尝试了什么?我认为OP不知道百分比变化的公式。哦,人类!百分比变化总是(之后-之前)/之前。i、 e.
(f(x_1)-f(x_0))/f(x_0)
。SIGHI认为您需要添加标记:家庭作业
,学术
并打开mathbook,请这不是家庭作业或学术。使用列表::Util
Perl成为函数式语言,哈
#!/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;
};
}