Лекции по "Высшая математика"

Автор: Пользователь скрыл имя, 22 Декабря 2011 в 20:19, курс лекций

Описание работы

Под табуляцией функции понимается вычисление значений функции в зависимости от аргумента, который меняется в определенных пределах с постоянным шагом. Решение задачи табуляции является достаточно характерным примером реализации циклического алгоритма.

Содержание

1. Табуляция функции 4
1.1. Практические задания 6
2. Методы нахождения корней уравнений 8
2.1. Метод половинного деления 8
2.2. Итерационные методы 10
2.3. Практические задания 15
3. Вычисление определенного интеграла 16
3.1. Практические задания 19
4. Вычисление конечных сумм 20
4.1. Практические задания 24
5. Индексированные переменные 26
5.1. Одномерный массив 26
5.2. Практические задания 30
5.3. Двумерный массив 32
5.4. Практические задания 38
6. Решение системы линейных алгебраических
уравнений методом Гаусса 41
6.1. Практические задания 44
Литература 46

Работа содержит 1 файл

Методички 1 курс.doc

— 678.00 Кб (Скачать)

 
Содержание

 

1. Табуляция функции

  Под табуляцией функции понимается вычисление  значений  функции в зависимости  от аргумента, который меняется в  определенных пределах с постоянным шагом. Решение задачи табуляции является достаточно характерным примером реализации  циклического алгоритма.

  Формулировка  задачи табуляции: дана функция y = f(x). Требуется получить   значения f(x) для аргумента x, меняющегося в интервале от xmin до xmax с шагом Dx. На рис. 1.1 приведен алгоритм решения задачи табуляции, использующий цикл с предусловием. Число повторений цикла, необходимое для решения поставленной задачи, можно определить по формуле:

     ,

в которой  квадратные скобки означают функцию взятия целой части от заключённого в них выражения.

  При выполнении заданий необходимо учесть, что алгоритмы, вычисляющие значения тригонометрических функций, предусматривают подстановку аргумента, выраженного в радианах.

   Табуляцию функции можно дополнить следующим  этапом исследования функции – построением несложного графика. Текстовый режим дисплея (25 строк по 80 позиций) не дает возможности строить подробные графики, поэтому «рисовать» график приходится каким-либо символом (буквой).

  Специальной функции для такого рисования  в классическом Си нет. Однако для этой цели можно приспособить стандартную процедуру printf, воспользовавшись особенностями форматирования выводов результатов. Под форматированием (или просто форматом) вывода понимается число выводимых на экран цифр. Для задания формата в Си необходимо указать минимальную ширину поля отводимого для печати. Если строка или число больше указанной ширины поля, то строка или число печатается полностью. Например, процедура вывода целой переменой i – printf("%5d",i) разместит ее значение в пяти позициях так, чтобы последний символ находился в последней пятой позиции. Меняя в цикле значения ширины поля (при соблюдении соответствующего масштаба), можно построить простой график из 25 точек.

  Приведем  пример программы, выполняющей табулирование  функции:

  #include <stdio.h>

  #include <math.h>

   

  float f(float x);

   

  void main()

  {

          float a,b,h;

          printf("\t Табулирование функции sin(7pi/8 - 2x)^2\n");

          printf("Введите нижнюю границу a :  ");scanf("%f",&a);

          printf("Введите верхнюю границу  b :  ");scanf("%f",&b);

          printf("Введите шаг табуляции h :  ");scanf("%f",&h);

          printf("Таблица табулирования\r\n");

          float x = a;

          while(x + h <= b)

          {

                  printf("x : %.3f - y : %.3f\n",x,f(x));

                  x += h;

          }

  }

  float f(float x)

  {

          float pi = 3.142;

          float RetVal = pow(sin(7*pi/8 - 2*x),2);

          return RetVal;

  }

1.1. Задания на табуляцию функции

 
 
  табулируемая  функция
 
a
диапазон  изменения аргумента  
Dx
 
1
    
3,1
 
00 £ x £ 450
 
50
 
2
    
3,65
 
00 £ x £ 500
 
100
 
3
    
4,66
 
50 £ x £ 450
 
50
 
4
    
2,4
 
100 £ x £ 500
 
100
 
5
    
2,41
 
80 £ x £ 720
 
80
 
6
    
1,4
 
200 £ x £ 800
 
7,50
 
7
    
1,9
 
50 £ x £ 450
 
50
 
8
    
6,87
 
50 £ x £ 800
 
150
 
9
    
4,55
 
80 £ x £ 800
 
120
 
10
    
2,21
 
350 £ x £ 650
 
50
 
11
    
1,84
 
00 £ x £ 720
 
90
 
12
    
0,43
 
50 £ x £ 350
 
50
 
13
    
1,89
 
200 £ x £ 440
 
40
 
14
    
4,81
 
100 £ x £ 350
 
50
 
15
    
0,21
 
30 £ x £ 270
 
30
 
16
    
3×ln3
 
120 £ x £ 300
 
30
17    1,19 60 £ x £ 360 50
 
18
    
5,12
 
50 £ x £ 400
 
70
 
19
    
 
 
00 £ x £ 360
 
 
60
 
20
    
0,3p
 
50 £ x £ 350
 
30

 

 2. МЕТОДЫ НАХОЖДЕНИЯ КОРНЕЙ УРАВНЕНИЙ

  Как известно, компьютеры в первую очередь  начали применять для выполнения трудоемких расчетов и для получения  хотя бы приблизительных значений каких-либо величин при решении таких задач, для которых получить точное аналитическое решение либо невозможно, либо нецелесообразно. Примером таких задач являются задачи на уточнение корней уравнений. При их решении используют различные численные методы. Здесь представлены три метода уточнения корней уравнений, используя которые можно находить корни уравнений с требуемой точностью.

  Очень часто на практике приходится решать уравнения вида f(x)=0, где функция f(x) определена и непрерывна в интервале а < х < b. Под решением уравнения понимают нахождение некоторого значения х0, которое обращает функцию f(x) в ноль. Значение х0 и называется корнем уравнения f(x)=0.

  Если  функция представляет собой многочлен, то уравнение f(x)=0 называют алгебраическим. Если же в функцию входят элементарные функции (тригонометрические, показательные, логарифмические и пр.), то такое уравнение называют трансцендентным.

2.1. Метод  половинного  деления

  Метод половинного деления, или метод  деления отрезка пополам (дихотомии), чрезвычайно прост, и его алгоритм легко реализуется на ЭВМ.

  Пусть необходимо решить уравнение f(х) = 0, где функция f(x) непрерывна на отрезке [а; b], и только один корень х0 заключен в том же интервале. Таким образом, функция f(х) будет знакопеременной на концах отрезка [а; b] (рис. 2.1). Математически это можно записать как f(a)×f(b)<0. Разделим отрезок [а; b] пополам, т. е. найдем и вычислим значение функции f(x) в этой точке.

  Если  окажется, что f(x) = 0, то х - корень уравнения. Если f(x)¹0, то выбираем ту половину отрезка [а; х] или [х; b], на концах которой функция f(x) имеет противоположные знаки. На рис. 2.1 это отрезок [х; b]. Половина отрезка, не содержащая корня [а; x], отбрасывается. Это означает, что левая граница интервала перемещается в точку деления пополам (a=x).

 

  

    

                          Y                                                      f(b)

                                                                   y=f(x) 

                               a         ®         x                    b

                                                                    x0                      X

                                                              f(x)

                          f(a) 

Рис. 2.1. Геометрическое представление метода половинного деления

  При повторном делении производятся те же самые операции: новый отрезок [а; b] делится пополам, вычисляется значение функции в точке деления f(x) и определяется отрезок, содержащий истинный корень х0. Процесс деления продолжают до тех пор, пока длина отрезка, содержащего корень, не станет меньше некоторого наперед заданного числа e (точности) или пока значение функции в точке деления y=f(x) превышает e по абсолютной величине. 

        Ввод  границ интервала a, b  
    и точности Eps
        z = f(a)
              x = (a+b) /2
        y = f(x)
        y*z

        да

    > 0

        нет

        a = x     b = x
        z = y
          Повторять, пока b-a > Eps
        Вывод x, f(x)
 

Рис. 2.2. Структурограмма метода половинного деления (метод дихотомии)

  Алгоритм  метода половинного деления приведен на рис. 2.2. Отметим, что выделение знакопеременного интервала на основе вычисления произведения f(a)×f(x) не является оптимальным, так как необходим лишь знак этого произведения. Поэтому разумнее определять знак на основе использования логических функций сравнения > или <, а также логических функций умножения и сложения: “и“ (&&) и “или“ (||). Попробуйте самостоятельно определить вид такого «логического» перемножения. Учтите, что возможны два варианта знакопеременности: на левой границе – минус, на правой – плюс, и наоборот.

2.2. Итерационные методы

  Метод половинного деления обладает существенным недостатком - медленной сходимостью процесса вычисления корней. При увеличении точности значительно возрастает объем вычислительной работы. Для убыстрения вычислительного процесса применяют методы последовательных приближений (итерационные методы). В их основе - идея вычисления каждого последующего приближения на основании предыдущего, то есть использование рекуррентных формул вида:

          xn+1 = f(xn). (2.1)

Метод Ньютона (метод касательных)

  Пусть уравнение f(x)=0 имеет один корень на отрезке [а; b], а его первая и вторая производные f ¢(x) и f ¢¢(x) определены, непрерывны и сохраняют постоянные знаки в этом интервале.

  Геометрически метод Ньютона эквивалентен замене небольшой дуги кривой  y = f (x)  касательной в некоторой точке кривой (рис. 2.3).

  Выберем в качестве первого приближенного  значения корня точку x1=b, для которой выполняется условие f (x1)×f ¢¢(x1)>0, т.е. значения функции и ее второй производной в точке х1 имеют одинаковые знаки. Напомним, что знак второй производной от функции f (x) определяет выпуклость кривой: если f ¢¢(x) положительна, то график функции имеет выпуклость вниз, как это изображено на рис. 2.3.

  Через точку R1 с координатами [х1, f(x1)] проведем касательную к кривой у = f (х). В качестве второго приближения х2 корня возьмем абсциссу точки пересечения этой касательной с осью Ох. Через точку R2 снова проведем касательную, абсцисса точки пересечения которой даст нам следующее приближение х3 корня, и т. д.

Информация о работе Лекции по "Высшая математика"