Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _USE_MATH_DEFINES
- #include<iostream>
- #include<cmath>
- #include<iomanip>
- using namespace std;
- double f(double x) //funckje
- {
- return (6*pow(x,3)-2*pow(x,2)+5); //funkcja algebraiczna 3st.
- //return 2*x-cos(x)-M_PI; //zadana funkcja F
- }
- double fp(double x) //pochodne
- {
- return (18*pow(x,2)-4*x); //pochodna do funkcji algebraicznej
- //return sin(x)+2.0; //pochodna do funkcji F
- }
- double u(int x) //funckaj pomocnicza
- {
- return (f(x)/fp(x));
- }
- double mz(double x) //miejsca zerowe
- {
- x=0.84202392298099665;//mz do funkcji algebraicznej
- //x=1.57079632679489662; //mz do funckji F
- return x;
- }
- int main()
- {
- double x, h, w, X, e;
- int licznik=0;
- cout<<endl<<"Podaj liczbe poczatkowa x: ";
- cin>>x;
- cout<<"Podaj epsilon e: ";
- cin>>e;
- cout<<endl;
- cout<<endl<<"Metoda Newtona: "<<endl;
- do
- {
- h=-1.0*(f(x)/fp(x));
- x+=h*1.0;
- w=fabs(h/x)*1.0;
- licznik++;
- }
- while(w>=e);
- cout<<endl;
- cout<<"Wynik: "<<x<<endl;
- cout<<"Ilosc iteracji: "<<licznik<<endl;
- if(mz!=0)
- {
- cout<<"Blad wzgledny: "<<setprecision(16)<<fabs(x-mz(x))/fabs(mz(x))<<endl;
- }
- else
- {
- cout<<"Blad bezwzgledny: "<<setprecision(16)<<fabs(x-mz(x))<<endl;
- }
- licznik=0;
- cout<<endl<<"Metoda wielopunktowa: "<<endl;
- do
- {
- h=-1/4(u(x)+(3*f(x)/fp(x-2u(x)/3));
- x+=h*1.0;
- w=fabs(h/x)*1.0;
- licznik++;
- }
- while(w>=e);
- cout<<endl;
- cout<<" Wynik: "<<x<<endl;
- cout<<"Ilosc iteracji: "<<licznik<<endl;
- if(mz!=0)
- {
- cout<<"Blad wzgledny: "<<fabs(x-mz(x))/fabs(mz(x))<<endl;
- }
- else
- {
- cout<<"Blad bezwzgledny: "<<fabs(x-mz(x))<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement