с++ метод простых итераций

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by greeef, 18 May 2008.

  1. greeef

    greeef New Member

    Joined:
    9 Oct 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    дана ф-я x*x-sin(5*x)-1 как должен применятся данный метод к ней? если кто нибудь делал подобную лабу скиньте исходник мне не понятен сам метод сколько где ни читал... или скиньте ссылку на то где нормально описан сам метод(чисто математика)
     
    1 person likes this.
  2. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    что-то про периодичность функций?
     
  3. greeef

    greeef New Member

    Joined:
    9 Oct 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    нее периодичность тут вроде не причем http://www.exponenta.ru/educat/class/courses/vvm/theme_2/theory.asp#5 <-- только мне это не помогло
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    м?
    http://forum.sources.ru/index.php?showtopic=53319
    http://elib.ispu.ru/library/math/sem1/kiselev1/node80.html
     
    _________________________
    1 person likes this.
  5. greeef

    greeef New Member

    Joined:
    9 Oct 2007
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    #include <math.h>
    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>
    #include <windows.h>
    double Func(double x)
    {
    return x*x-sin(5*x)-1;
    }

    double Fp(double x, double E)
    {
    return (Func(x+E/2)-Func(x-E/2))/E;//типа производную так захуячил
    }

    void main()
    {
    double a,b,X,E;
    int ii;
    printf("x^2-sin(5*x)-1\na=");
    scanf("%lf",&a);
    printf("b=");
    scanf("%lf",&b);
    printf("e=");
    scanf("%lf",&E);
    printf("Metod resheniya?\n\t\t1)metod polovinnogo deleniya\n\t\t2)metod Newtona\n\t\t3)Prostih iteracyi\n");
    scanf("%i",&ii);
    system("cls");
    X=a;
    double Xt;
    int count=0;
    do
    {
    count++;
    Xt=X;
    if (ii==1) {X=(b+a)/2;} else {if (ii==2) {X=-Func(X)/Fp(X,E)+X;} else {if (ii==3) {X=Func(X);}} }
    cout<<"["<<count<<"]="<<X<<endl;
    if(Func(X)*Func(a)>0)a=X;
    else b=X;
    }while(fabs(X-Xt)>=E);
    cout<<"X="<<X;
    cin.get();
    }
    вот написал должен рещать тремя методами а решает двумя... подскажите где ошибка в третьем