뉴튼 방정식 문제..
아놀드
방정식 x^6승 -x +1 표현..
방정식 x^6승 -x +1 표현.. 인대..
#define F(x) ((pow(x,6))-x+1) 이렇게 수식 표현을 해주면 되는건가요???
질문 내용 : #include stdio.h
#include math.h
//뉴튼 라프슨의 근의 근사값
//방정식의 근을 근사한다.
#define F(x) ((pow(x,6))-x+1) //근을 구할 수식
double nuton(double x);
int main()
{
double py=0,my=0;
printf(===================방정식=======================\n);
printf(\n방정식을 수치적으로 계산하여 근을 구합니다.);
printf(\n);
printf(\n================================================\n);
py = nuton(1000000);
my = nuton(-1000000);
printf(===================Result=======================\n);
printf(근 = %19.16lf\t양으로부터 접근,py);
printf(\n근 = %19.16lf\t음으로부터 접근,my);
printf(\n================================================\n);
return 0;
}
double nuton(double x)
{
double dy;
int n,m=1;
printf(===================중간값=======================\n);
printf(초기X값 =%8.lf\n\n,x);
while(1)
{
n=1;
//미분라인
while(1)
{
if(dy == (F(x+pow(10,n*(-1)))-F(x))/((x+pow(10,n*(-1)))-x))break;//근사완료 break
dy = (F(x+pow(10,n*(-1)))-F(x))/((x+pow(10,n*(-1)))-x);// 수치미분
//printf(미분값 정밀도[EXP(%3.0d)] = %.16lf\n,-n,dy);//출력
n++;
}
if(x == x-(F(x)/dy))break;
if(m500)break;
//뉴튼 라프슨
x = x-(F(x)/dy);
printf(미분값 정밀도[EXP(%3.0d)] = %.16lf\n,-n,dy);//출력
printf(근사근 = %.16lf\n\n,x);
m++;
}
return x;
}
-
하늘이
C++ Q&A 게시판에서 C언어 Q&A 게시판으로 이동시켰습니다.