寻找一个区间牛顿法的程序
各位大神,有没有人用c++编过区间牛顿法的程序,对于区间牛顿法有很多理解不了
[解决办法]
仅供参考,还不知道这算不算“区间牛顿法”:
//用C语言编程,求出sin(x)=(5/6)*x这个方程在区间(0,π/2)的近似解。
#include <math.h>
#include <stdio.h>
double x,e;
void main () {
x=0.001;
e=0.001;
while (1) {
while (1) {
if (sin(x)>5.0/6.0*x) {
x+=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
while (1) {
if (sin(x)<5.0/6.0*x) {
x-=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
}
printf("%.14g\n",x);
}
//1.026738291371
//用C语言编程,求出2^x=x^10这个方程的解。
#include <math.h>
#include <stdio.h>
double x,e;
void main () {
x=-1.0;
e=0.001;
while (1) {
while (1) {
if (pow(2.0,x)<pow(x,10.0)) {
x+=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
while (1) {
if (pow(2.0,x)>pow(x,10.0)) {
x-=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
}
printf("%+.14g\n",x);
x=1.0;
e=0.001;
while (1) {
while (1) {
if (pow(2.0,x)>pow(x,10.0)) {
x+=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
while (1) {
if (pow(2.0,x)<pow(x,10.0)) {
x-=e;
} else {
break;
}
}
e/=10.0;
if (e<1e-15) break;
}
printf("%+.14g\n",x);
}