Лабораторная работа №3 по дисциплине: «ОПиА» Мажидов Самандар Группы: 3-23 атпп


Download 189.5 Kb.
bet4/7
Sana02.06.2024
Hajmi189.5 Kb.
#1838356
TuriЛабораторная работа
1   2   3   4   5   6   7
double s1,s2,S=0;
const double x=3.14/4;
int i, n;
cout<<"Лабораторная работа № 3\n";
cout<<"\nМажидов Самандар 3-23\n";
cout<<"\nВариант № 12\n";
cout<<"\n\nИндивидуальное задание № 2:\n";
cout<<"\n Найти значение конечной суммы S при x=3.14/4\n";
cout<<"\n\n Работа программы:\n";
cout<<"\n Введите значиниеN>0\n"<<"\nN=";
cin>> n;
for(i=1; i<=n; i++)
{
s1+=pow(sin(x),i);
s2+=sin(pow(x,i));
}
S=s1+s2;
cout<<"\n Конечная сумма : \n"<<"\n S=" << s1 << "+" << s2 << "="<
system("pause");
return 0;
}

Индивидуальное задание № 2.2.1.
Вариант № 12__
2.2.1. Постановка задачи:
4. Написать программу, позволяющую протабулировать функцию, определенную в соответствии с индивидуальным заданием № 1 лабораторной работы № 2, в диапазоне от xmin=−15 до xmax = 20 в N = 1000 равноудаленных точках.


2.2.1 Листинг программы:
// Лабораторная работа №3
// Индивидуальное задание № 1
#include
#include "math.h"
using namespace std;
const double x_min=-15;
const double x_max=20;
const int N=1000;
int main()
{
setlocale(LC_ALL, "RUSSIAN");
double dx=(x_max-x_min) / N;
double y,a;
cout<<"Лабораторная работа № 3\n";
cout<<"\nМажидов С.З., 1-22\n";
cout<<"\n Вариант № 6\n";
cout<<"\n\nЗадание:\n";
cout<<"\n протабулировать функцию y"
<<"Диапазоне x_min=-15 äî x_max=20\n";
cout<<"\n â N=1000Равноудаленных точках.\n";
cout<<"\n\n работа программы :\n";
cout<< " a="; cin>>a ;
for (double x=x_min; x<=x_max; x+=dx)
{
if (x<2) y=6-x*x/3;
else if (x>=2 && x==4)
y=a*exp(x)/(3+pow(4*x,6));
else
if (x>4)
y=pow (((6*x*x*x)-(4*x)),1/3);
cout <<" x="<< x << " y=" << y << ;
}
system("pause");
return 0;}2.2. Результат работы программы:

Индивидуальное задание № 3.
Вариант № __
3.1. Постановка задачи:
Вычислить значение специальной функции (интегральной показательной функции):
(1)
по ее разложению в ряд с точностью ε = 10−10, аргумент функции x вводится с клавиатуры.


Подготовка для составление программы:
Чтобы вычислить сумму ряда найдем рекуррентное соотношение, позволяющее определить следующий член ряда, исходя из значения текущего. Для этого разделим следующий член ряда на текущий. Текущий член ряда задается выражением:
(2)
тогда как следующий член ряда может быть определен следующим образом:
(3)
воспользовавшись свойством факториала (k + 1)! = (k + 1) · k!, последнее выражение может быть записано следующим образом:
(4)
Можно показать, что отношение следующего и текущего членов ряда (2 и 4) будет:
(5)
Следовательно
(6)
Первый член ряда
(7)
Условие завершения вычисления суммы ряда может быть записано следующим образом ak ≤ ε.

Программа имеет следующий вид:




3.3. Листинг программы:
// Лабораторная работа № 3
// Табуляция функции
#include
#include
using namespace std;
// Точность вычислений.
const double eps = 1e-10;
// Постоянная Эйлера
const double euler = 0.5772156649;
int main()
{
setlocale(LC_ALL, "Russian");
double x, a, S;
cout << "Введите значение x: "; cin >> x;
// Начальное значение члена ряда и суммы.
a = x;
S = a;
// Найти сумму членов ряда.
for(int k = 1; fabs(a) > eps; k++)
{
// Найти значение следующего члена ряда.
a *= x*k/((k + 1)*(k+1));
// Добавить полученный член к сумме.
S += a;
}
// Вывести значение интегральной
// показательной функции.
cout << "Ei(x = " << x << ") = " << (euler + log(x) + S) << endl;
system("pause");
return 0;
}



Download 189.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling