|
发表于 2020-4-16 20:13:56
|
显示全部楼层
本楼为最佳答案
精度这个问题,不知道怎么解决,貌似在求解过程中作为限制条件有点不管用
- double getFunctionValue(double x){
- return x*exp(x)-1;
- }
- double getFunctionPre(double x){
- return (1+x)*exp(x);
- }
- void getAnswer(void){
- double x0 = 0.9;
- double x1;
- double y, py;
- int start = 0;
- int stop = 100;
- while(true){
- y = getFunctionValue(x0);
- py = getFunctionPre(x0);
- if(py == 0 || start >= stop){
- break;
- }
- x1 = x0;
- x0 = x1 - y/py;
- printf("%d x0= %f x1= %f\n",start, x0,x1);
- printf("x0-x1 = %f \n",x0-x1);
- start++;
- }
- printf("get it\n");
- printf("x = %f\n", x0);
- }
- int main(int argc, char *argv[]){
- getAnswer();
- return 0;
- }
复制代码 |
|