Нижегородский государственный технический университет им. Р.Е. Алексеева
Кафедра «Прикладная математика».
Отчет по лабораторной работе №1.
Численные методы решения нелинейных уравнений
Вариант №19.
Выполнил: студент группы 09-СК
Коптелов А.В.
Проверил: Галина Н.В.
Нижний Новгород
2010 г.
Постановка задачи.
Решить нелинейное уравнение:
x+cos(x +2)=0 на [0,5;1]
Решение.
РЕАЛИЗАЦИЯ В C++.
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
double a=0.5,b=1;//otvet v shagovom metode
double c=0.5,u=1;//ishodny intervall
double e=0.001;
double F(double x)
{return (x+cos(pow(x,0.52)+2));}
double F1(double x)
{return 1-sin(pow(x,0.52)+2)*0.52*pow(x,-0.48);}
double S(double x)
{return -cos(pow(x,0.52)+2);}
void Shag(){
double h=0.05;
double x0=c;
double x1;
while(x0<=u){
x1=x0+h;
if(F(x0)*F(x1)<0){
cout<<"shagovy metod ["<<x0<<";"<<x1<<"]"<<endl;
a=x0;
b=x1;
}
x0=x1;
}
}
double Polovinn(){
double x0=a;
double x1=b;
double p=x0;
while(fabs(F(p))>e){
p=(x0+x1)/2;
if(F(x0)*F(p)<0) x1=p;
else x0=p;
}
cout<<"metod polovinnogo delenya x= ["<<p<<"]"<<endl;
return 8;
}
double Nuton(){
double x0=a;
while(fabs(F(x0))>e){
x0=x0-F(x0)/F1(x0);
}
cout<<"metod Nutona x= ["<<x0<<"]"<<endl;
return 8;
}
double Prostaya_iteraciya(){
double x0=a;
double s;
while(fabs(F(x0))>e){
x0=S(x0);
}
cout<<"metod prostaya teraciya x= ["<<x0<<"]"<<endl;
return 8;
}
void main()
{//double a,b,x0,x1,h;
//int N;
Shag();
//Nuton();
Polovinn();
Nuton();
Prostaya_iteraciya();
}
//while