C言語関係掲示板

過去ログ

No.577.ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたい

[戻る] [ホームページ]
No.5368

ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたい
投稿者---キャッ太郎(2003/02/25 18:16:11)


ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたいのですが、分かる方教えていただけませんか??

No.5371

Re:ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたい
投稿者---a"(2003/02/25 20:46:00)


>ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたいのですが、分かる方教えていただけませんか??
#include <stdio.h>
#include <math.h>
#define EPS 1e-8
#define LIMIT 100

typedef struct{
    double axx;
    double bx;
    double c_;
}abc__;
abc__ abcx;
void set(double *x){
    puts("ax^2+bx+c:a,b,c,x : >>");
    scanf("%lf%lf%lf%lf",&abcx.axx,&abcx.bx,&abcx.c_,x);
}
double f_(double xx_){
    return (abcx.axx*(xx_)*(xx_)+abcx.bx*(xx_)+abcx.c_);
}
double g_(double xx_){
    return (2*abcx.axx*xx_+abcx.bx);
}

int main(void){
    double x, dx;
    int k;
    set(&x);
    for(k=0;k<=LIMIT;k++){
        dx=x;
        x=x-f_(x)/g_(x);
        if(fabs(x-dx)<fabs(dx)*EPS){
            printf("x=%f\n",x);break;
        }
    }
    if(k>LIMIT)
        puts("non limit");
    return 0;

}



No.5376

Re:ニュートン・ラフソン法を拡張して(x^2+2x+1)などの重解を求めたい
投稿者---キャッ太郎(2003/02/25 22:48:09)


ありがとうございます。助かりました。