Лабораторная работа №3 по дисциплине: «ОПиА» Мажидов Самандар Группы: 3-23 атпп
Download 189.5 Kb.
|
- Bu sahifa navigatsiya:
- 2.2.1 Листинг программы: // Лабораторная работа №3 // Индивидуальное задание № 1 include include "math.h"
- Подготовка для составление программы
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling