close

Вход

Забыли?

вход по аккаунту

?

лаба 6, 7

код для вставкиСкачать
Лаба 6
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
double h(double);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "russian");
int j;
double E, a, b, c, z;
bool f = false;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "E = ";
cin >> E;
while ( f == false)
{
c = (a + b)/2;
if (h(a)*h(c) < 0)
b = c;
else a = c;
if ((b - a) < E)
{
z = (a + b)/2;
f = true;
}
}
cout << " Корень уравнения равен: " << z << endl;
return 0;
}
double h(double x)
{
double p;
p = tan(7*x) + x*x*sin(x) + 1;
return p;
}
Лаба 7
1 файл
// lab7.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "Integral.h"
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Integral f(x) = " << inegr() << endl;
return 0;
}
2 файл
double func(double);
double inegr(void);
3 файл
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
#include "Integral.h"
double func(double x1)
{
double p ;
p = 1/(1 + sqrt(x1));
return p;
}
double inegr(void)
{
int n, j;
bool f = false;
double h, x , hi, s, E, s1, k;
double a = 0, b = 2;
cout << " E = ";
cin >> E;
cout << "n = ";
cin >> n;
j = 1;
while ( f == false)
{
h = (b - a)/n;
k = 0;
for( int i = 1; i <= n; i++)
{
hi = i*(b - a)/n;
x = a + hi - h/2;
k += func(x);
}
s = h*k;
if(j == 1)
{
n = n*2;
s1 = s;
j++;
}
else if (fabs(s1 - s) < E)
f = true;
else {
s1 = s;
n = n*2;
}
} return s;
}
ЛАБА 6
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
double h(double); - прототип функции
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "russian");
int j;
double E, a, b, c, z;
bool f = false;
cout << "a = "; cin >> a; (a, b) - длина отрезка, на котором нужно вычислить корень cout << "b = "; E - точность вычисления cin >> b;
cout << "E = ";
cin >> E;
while ( f == false) - условия продолжения цикла
{
c = (a + b)/2; - делим отрезок (а, б) пополам
if (h(a)*h(c) < 0) - подставляем значения а и с в ф-цию
b = c; -если условие выполняется
else a = c; - если условии ложно
if ((b - a) < E) если это условие выполняется, то это {значит, что мы нашли корень ур-ния.
z = (a + b)/2; Меняем условие цикла и выходим из него
f = true;
}
}
cout << " Корень уравнения равен: " << z << endl;
return 0;
}
double h(double x) - вместо x подставляется а, б и с
{
double p;
p = tan(7*x) + x*x*sin(x) + 1;
return p;
}
ЛАБА 7
1 файл - заголовочный файл .h - объявления функций
double func(double);
double inegr(void);
2 файл - реализация этих функций
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
#include "Integral.h"
double func(double x1) - вместо x1 подставляется x
{
double p ;
p = 1/(1 + sqrt(x1)); - функция, для которой нужно посчитать интеграл
return p;
}
double inegr(void)
{
int n, j;
bool f = false;
double h, x , hi, s, E, s1, k;
double a = 0, b = 2; - необходимо найти фу-ции, ограниченной этим отрезком
cout << " E = "; - точность
cin >> E;
cout << "n = ";
cin >> n; - кол-во маленьких прямоугольников, разбивающие нашу площадь,
которую нужно посчитать( интеграл)
j = 1; - показует, что считаем площадь(самую первую), разбитую на n маленьких while ( f == false) прямоугольников. ( n изменяется каждую итерацию цикла)
{
h = (b - a)/n; - переменная, которая нужно для подсчета площади
k = 0;
for( int i = 1; i <= n; i++)
{ считаем x и закидуем его в нашу ф-цию
hi = i*(b - a)/n;
x = a + hi - h/2;
k += func(x);
}
s = h*k; - посчитали первую площадь, разбитую на n частей
if(j == 1) нам нужно сравнивать 2 площади(разбитую на n { частей и на n*2) . если мы считаем самый первый раз
n = n*2; раз то сравнивать первую площадь не с чем.
s1 = s; сюда зайдем только 1 раз. Увелич. n, запо-
j++; минаем первую площадь
}
else if (fabs(s1 - s) < E)
f = true; сравниваем 2 площади. Если условие выполняется- else выходим с цикла
{
s1 = s; если нет, то запоминаем прошлую площадь, и увеличи n = n*2;ваем n. } (запоминаем площадь для того, что потом их сравнивать) } return s;
}
3 файл - файл реализации функции main
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "Integral.h"
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Integral f(x) = " << inegr() << endl; - просто вызываем ф-цию
return 0;
}
Документ
Категория
Рефераты
Просмотров
22
Размер файла
27 Кб
Теги
лаба
1/--страниц
Пожаловаться на содержимое документа