首先,我们要清楚二次函数的一般式是 y = ax^2 + bx + c
,其中 a
, b
, c
是常数,并且 a ≠ 0
,而顶点式是 y = a(x - h)^2 + k
。
a
, b
, c
的值。x
的值可以通过公式 h = -b / (2a)
计算得出。这个公式是二次函数对称轴的公式,也是顶点横坐标的公式。k=(4ac-b^2) / (4a)
计算得出。这个公式是顶点纵坐标的公式。h
和 k
值,以及原一般式中的 a
值,写出二次函数的顶点式 y = a(x - h)^2 + k
。2a
不为零,即 a ≠ 0
。b^2 - 4ac
小于零时,二次函数没有实数根,但它仍然有一个顶点。#include <stdio.h>
int main() {
double a, b, c, h, k;
// 输入二次函数的一般式系数
printf("请输入二次函数的一般式系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算顶点的 h 和 k
h = -b / (2 * a);
k = (4.0 * a * c - b * b) / (4.0 * a);;
// 输出顶点式与顶点
printf("二次函数的顶点式为:\n");
printf("y = %.2lf * (x - %.2lf)^2 + %.2lf\n", a, h, k);
return 0;
}
在顶点式中, y = a(x - h)^2 + k
其中 (h, k)
是二次函数的顶点坐标,也就是[-b/2a,(4ac-b^2)/(4a)]
。
printf("顶点坐标为:(%.2lf, %.2lf)\n", h, k);
//这个是由于我们在上一步早已经计算好了h,k的值
#include <stdio.h>
int main() {
double a, b, c, h, k;
// 输入二次函数的一般式系数
printf("请输入二次函数的一般式系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算顶点的 h 和 k
h = -b / (2 * a);
k = (4.0 * a * c - b * b) / (4.0 * a);
// 输出顶点式与顶点
printf("二次函数的顶点式为:\n");
printf("y = %.2lf * (x - %.2lf)^2 + %.2lf\n", a, h, k);
printf("顶点坐标为:(%.2lf, %.2lf)\n", h, k);
return 0;
}
如果a为0,则函数中二次项无意义,这不是一个有效的二次函数,无法计算k值。
使用if语句,如果a等于零,则报错,否则就正常运算。
if (a == 0){
printf("错误:a不可以等于0\n");
return 1;
// 返回非零值表示程序异常终止
}
else {
// 计算顶点的 h 和 k
h = -b / (2 * a);
k = (4.0 * a * c - b * b) / (4.0 * a);
}
#include <stdio.h>
int main() {
double a, b, c, h, k;
// 输入二次函数的一般式系数
printf("请输入二次函数的一般式系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
// 检查 a 是否为零
if (a == 0) {
printf("错误:a不可以等于0\n");
return 1;
// 返回非零值表示程序异常终止
}
else {
// 计算顶点的 h 和 k
h = -b / (2 * a);
k = (4.0 * a * c - b * b) / (4.0 * a);
// 输出顶点式与顶点
printf("二次函数的顶点式为:\n");
printf("y = %.2lf * (x - %.2lf)^2 + %.2lf\n", a, h, k);
printf("顶点坐标为:(%.2lf, %.2lf)\n", h, k);
return 0;
}
}
y = ax^2 + bx + c
中二次项系数y = ax^2 + bx + c
中一次项系数y = ax^2 + bx + c
中常数项y = a(x - h)^2 + k
中的h,顶点坐标点一部分(具体计算过程见【1.2 转化步骤】)y = a(x - h)^2 + k
中的k,顶点坐标点一部分(具体计算过程见【1.2 转化步骤】)本文采用 CC BY-NC-ND 4.0 协议,完整转载请注明。