Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   с++ метод простых итераций (https://forum.antichat.xyz/showthread.php?t=70679)

greeef 18.05.2008 15:17

с++ метод простых итераций
 
дана ф-я x*x-sin(5*x)-1 как должен применятся данный метод к ней? если кто нибудь делал подобную лабу скиньте исходник мне не понятен сам метод сколько где ни читал... или скиньте ссылку на то где нормально описан сам метод(чисто математика)

Piflit 18.05.2008 15:19

что-то про периодичность функций?

greeef 18.05.2008 15:23

нее периодичность тут вроде не причем http://www.exponenta.ru/educat/class/courses/vvm/theme_2/theory.asp#5 <-- только мне это не помогло

Kaimi 18.05.2008 15:35

м?
http://forum.sources.ru/index.php?showtopic=53319
http://elib.ispu.ru/library/math/sem1/kiselev1/node80.html

greeef 18.05.2008 16:05

#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();
}
вот написал должен рещать тремя методами а решает двумя... подскажите где ошибка в третьем


Время: 16:36