为算一道数学题而编的程序。代码对吗?

来源:百度知道 编辑:UC知道 时间:2024/06/21 15:42:03
我要做的题是这样的:

曲线y=x^3在(-1,-1)处的切线与x轴、直线x=-1围成的面积为_____

这道题的关键在求出那条切线的斜率。我不想进行繁杂的计算,因此我写了下面的一段代码用来求它的斜率:

main()
{
/*变量定义*/
float _x0 = -1.0,_y0 = -1.0;
float x_reg[2],y_reg,k;
float _accuracy = 0.001;
float _range_a = -2.0;
float _range_b = 0.0;
/*开始计算*/
/*先从直线x=-1左面算*/
x_reg[0] = -1.0;
x_reg[1] = _range_a;
while(fabs(x_reg[1]-x_reg[0])>=_accuracy)
{
y_reg = x_reg[1]^3;
k = (y_reg-_y0)/(x_reg[1]-_x0);
printf("%f\n",k);
x_reg[0] = x_reg[1];
x_reg[1] = (x_reg[1]-_x0)/2.0+_x0;
}
/*左面的算完了,开始算右面的。*/
gotoxy(0,0);
x_reg[0] = -1.0;
x_reg[1] = _range_b;
while(fabs(x_reg[1]-x_reg[0])>=_accuracy)
{
y_reg = x_reg[1]^3;
k = (y_reg-_y0)/(x_reg[1]-_x0);
printf("\t\t%f\n",k);
x_reg[0] = x_reg[1];
x_reg[1] = (x_reg[1]-_x0)/2.0+_x0;
}
return 0;
}

求幂 用 这个函数
float pow(float x, float y);

y_reg = x_reg[1]^3;

C语言中^不是乘方,而是按位异或

另外算面积要进行积分,不是简单的分割成0.001的单位就能得到准确值的

所以你的结果应该是错误的

看看math.h里面的函数你会有些收获的。math提供了求幂的函数。

求导就可以知道斜率,另外简单分割要看程度,比如你分成了1000份,我觉得应该够了,可以得到准确值,因为matlab中,大概也就是这个数量级。