Контрольная работа по "Информатике"
Автор: Денис Х • Ноябрь 13, 2018 • Контрольная работа • 361 Слов (2 Страниц) • 296 Просмотры
1.) Необходимо решить уравнение :
x^3+2x^2+3x+5=0
взяв в качестве начального приближения x0=-2 и задав точность е=0.000001
#include
#include
#include
using namespace std;
double Rech1(double x)
{
return pow(x,3)+2*pow(x,2)+3*x+5;
}
double Rech2(double x)
{
return 3*pow(x,2)+4*x+3; //Производная
}
void main()
{
double x = -2, x0 = -2;
double e = 0.000001;
do
{
x0 = x;
x = x0 - Rech1(x)/Rech2(x);
}
while (fabs(x0-x)>e);
cout << setprecision (6)<
cin.get();
}
2.)Необходимо решить уравнение :
aX^3+bX^2+cX+d=0
#include
#include
#include
using namespace std;
double f(double x) { return cos(x)-x+1; } //Функция, нули которой ищем
double df(double x) { return -sin(x)-1; } //Её производная
int main() {
double tmp,x,eps;
int N=0;
cout<<"eps=";
cin>>eps; //Точность
cout<<"x0=";
cin>>x; //Начальное приближение
tmp=x+2*eps;
while(fabs(x-tmp)>eps) { //Выбран останов |x[n]-x[n+1]|
tmp=x;
x=x-f(x)/df(x);
N++;
}
cout.setf(ios::scientific);
cout<
cin>>N;
return 0;
}
3.)
typedef double (*function)(double x);
double TangentsMethod(function f, function df, double xn, double eps) {
double x1 = xn - f(xn)/df(xn);
double x0 = xn;
while(abs(x0-x1) > eps) {
x0 = x1;
x1 = x1 - f(x1)/df(x1);
}
return x1;
}
//Выбор начального приближения
xn = MyFunction(A)*My2Derivative(A) > 0 ? B : A;
double MyFunction(double x) { return (pow(x, 5) - x - 0.2); } //Ваша функция
...