Методические указания по выполнению задачи 5




Методические указания по выполнению задания

Задача 1. Используя оператор for, вычислить на ПК значение функции , при х=0.5. В приведенной формуле сомножитель 5x2 не зависит от параметра n,поэтому расчетную формулу можно упростить как: . Параметром цикла здесь является аргумент n и накопление суммы будет происходить по (1/n).

При вычислении конечных сумм и произведений искомый результат формируется постепенно.

При вычислении суммы сначала вычисляется S1 = S0 + S(n1), во втором повторе цикла эта сумма увеличивается на второе слагаемое и получается S2 = S1 + S(n2), в третьем повторе - на третье слагаемое S3 = S2 + S(n3) и т.д. Здесь S0 - начальное значение суммы и т.к. S1 должна быть равна S(n1), то S0 = 0.

При вычислении произведения сначала вычисляется Р1 = Р0*P(n1), затем Р2 = Р1*P(n2) и т.д. Здесь Р0 - начальное значение произведения и т.к. Р1 должно быть равно P(n1), то Р0 = 1.

Поскольку сомножитель 5×х2 не зависит от параметра n его можно вынести за знак суммы, и в тело цикла это произведение включать не следует. Тем самым сокращается время исполнения программы. Блок-схема алгоритма решения задачи (Рис. 4.1) и соответствующая ей программа будут иметь вид:

static void Main(string[] args) { double x = 0.5, t = 0, n; for (n = 1; n <= 10; n++) t = t + 1/ n; // накопление суммы в теле цикла t = 5*Math.Pow(x,2) * t; Console.WriteLine("Сумма членов ряда = {0:#.###}", t); Console.ReadKey(); }  

 

 

Результаты работы программы:

       
 
   
Рис. 4.1. Блок- схема алгоритма задачи 1  
 

 


Задача 2. Вычислить на ПК значения функции

static void Main(string[] args) { int i = 1, k = 1; double s = 0, t = 1; for (i = 1; i <= 10; i++) { s = 0; // обнуление суммы for (k = 1; k <= 5; k++) s = s + Math.Sin(i*k); // накопление суммы t = t * s; // накопление произведения } Console.WriteLine("t = {0:#.##### }", t); Console.ReadKey(); }    

 

 


 

Результаты работы программы:

       
 
   
Рис. 4.2. Блок схема алгоритма задачи 2.  
 


Задача 3. Используя операторы while…do и do…, while вычислить значения функции

, в диапазоне изменения x от 0 до 3 с шагом 0.5.

При решении данной задачи можно использовать алгоритмы циклической структуры "ДО" и "ПОКА". Параметром данного цикла является х, причем при каждом повторном вычислении его значение следует увеличивать на величину шага. По условию задачи начальным значением х примем 0, а конечным значением – 3.

Рассмотрим разные варианты решения этой задачи.

1 вариант. Сначала для вычисления y будем использовать алгоритмическую структуру – цикл "ПОКА". static void Main(string[] args) { double y, x = 0; while (x <= 3) { if (x>1) y=Math.Sin(x); else y=Math.Cos(x); Console.WriteLine(" x = {0,2:f} | y = {1,3:f}", x,y); x=x+0.5; } Console.ReadKey(); }  

 

 

 
 
| x= 0.00 | y= 1.00 | | x= 0.50 | y= 0.88 | | x= 1.00 | y= 0.54 | | x= 1.50 | y= 1.00 | | x= 2.00 | y= 0.91 | | x= 2.50 | y= 0.60 | | x= 3.00 | y= 0.14 |

 


 

       
   
 
 

 


Задания на дом для самостоятельного решения.

Составить блок-схему и написать программу, вычисляющую сумму (Задача4), заданную по варианту, приведенному в таблице 4.3. Для решения задачи использовать оператор for

Таблица 4.3

N Задача4 Задача5 Е х
  0,005 1,2
  0,002 0,9
3 . 0,003 1,4
  0,004 0,7
  0,001 0,6
  0,005 0,8
  0,004 1,5
  0,002 1,2
  0,003 0,9
  0,001 1,4
  0,004 0,7
  y = x10 + 2x9 + 3x8 +... + 10x + 11, где х=0,5 0,005 0,9

 

Составить блок-схему и написать программу, вычисляющую заданную функцию (Задача5), приведенную по варианту в таблице 4.3, разложив ее в ряд с заданной точностью Е. Определить минимально необходимое число членов ряда, сами члены ряда и их сумму, обеспечивающие представление функции с заданной точностью.

Методические указания по выполнению задачи 5

Представить функцию в виде ряда с точностью 0,001 при х=0,8.

Как известно из математики функцию y(x) можно разложить в ряд и рассчитать путем сложения первых нескольких n членом ряда. Например, y= a0 + a1 + a2 + a3 + a4 + …+ an +...

Функция e-x может быть разложена в ряд Тейлора. Ряд сходящийся и рассчитывается путем сложения n членов ряда. Для организации циклических вычислений необходимо рассчитывать члены ряда, сравнивать их значения с заданной точностью |an|>E и при выполнении условия сравнения производить их суммирование. Цикл завершается, когда |an| £ E.

Для организации циклического вычисления сначала запишем выражения для n-го и (n +1)-го членов ряда заданной функции:

Для расчета следующего an+1 члена ряда используем рекуррентное соотношение, связывающее его с предыдущим an членом через общий множитель qn.

Тогда an+1 = an × qn. Такой подход позволит избежать вычисление факториала и возведения в произвольную степень. Произведем алгебраические преобразования и упростим выражение для qn.

Подставляя n=0 в заданную формулу , получим начальные значения для расчета функции e-x . А именно: n=0, a0=1, s0= a0.

На рис. 4.5 приведёна блок-схема, программа и результаты,

подтверждающие решение задачи.

 

double x = 0.8, E = 0.01;

double a, s, q, y, d;

int n = 0;

a = 1; s = a;

Console.WriteLine(" Результаты вычислений");

Console.WriteLine();

Console.WriteLine("---------------------------------------------");

Console.WriteLine(" Сумма s | Количество n | Члены ряда a |");

Console.WriteLine("---------------------------------------------");

while (Math.Abs(a) > E)

{

q = -x / (n + 1);

a = q * a;

s = s + a;

n++;

Console.WriteLine("{0,5:E} | {1} | {2,8:E}", s, n,a);

}

Console.WriteLine("---------------------------------------------");

Console.WriteLine(" a ={0:0.######}", a);

Console.WriteLine(" n = " + n);

Console.WriteLine("Сумма S = {0:0.######}", s);

Console.WriteLine();

y = Math.Exp(-x);

Console.WriteLine("Функция y= {0:0.######}", y);

Console.WriteLine();

d = Math.Abs(y - s);

Console.WriteLine("Погрешность вычисления {0:0.######}", d);

Console.ReadKey();

 

 
 
Блок-схема Задачи 5


Как видно для представления функции e-x c точностью вычисления E=0.001 при x=0.8 достаточно сложить первые 6 членов ряда (a0,…a5).

Измените, точность вычисления Е. Проанализируйте результат представления заданной функции. Сделайте выводы, как погрешность вычисления влияет на результат представления функции.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: