#include<stdio.h>
#include<math.h>
#define tol -3 /*精度*/
/*--------------------
*方程组及一阶导数
--------------------*/
double f1(double x, double y){
return x*x + y*y -1;
}
double f2(double x, double y){
return x*x*x -y;
}
double f1_x(double x, double y){
return 2*x;
}
double f1_y(double x, double y){
return 2*y;
}
double f2_x(double x, double y){
return 3*x*x;
}
double f2_y(double x, double y){
return -1;
}
int main(void){
unsigned int c_times = 1;
double x_1,y_1,x_0,y_0;
double n_tol=1;
x_0 = 0.8;
y_0 = 0.6;
n_tol = pow((double)10,tol); /*误差界限*/
/*牛顿迭代*/
while(1){
x_1 = x_0 + (-f1(x_0,y_0)*f2_y(x_0,y_0) + f2(x_0,y_0)*f1_y(x_0,y_0))/(f1_x(x_0,y_0)*f2_y(x_0,y_0) - f2_x(x_0,y_0)*f1_y(x_0,y_0));
y_1 = y_0 + (-f1(x_0,y_0)*f2_x(x_0,y_0) + f2(x_0,y_0)*f1_x(x_0,y_0))/(f1_y(x_0,y_0)*f2_x(x_0,y_0) - f2_y(x_0,y_0)*f1_x(x_0,y_0));
printf("迭代次数:%d\t X的值:%-.20
05-23
421
