Поиск корней уравнения с заданной точностью. Построение графиков

Страницы работы

Содержание работы

Лабораторная работа №1

Поиск корней уравнения с заданной точностью.

Построение графиков.

Упражнения

Нарисовать график функции на заданном интервале.              (1б)

1.

Нарисовать картину интерфереции (сложения) двух монохроматических колебаний с одинаковой частотой,            (2б)

2.

но разными амплитудами и фазами.

Нарисовать импульс: форма – гауссова, частота – произвольная. (2б)

3.

Задачи

1. Написать программу для вычисления корня функции с точностью

10−4 на заданном интервале:

методом дихотомии                                             (3б)

(a)

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

(b)

методами a и b, сравнить скорости счёта                       (9б)

(c)

Для полиномиальной функции произвольного порядка написать

2.

программу символьного интегрирования (дифференцирования).     (4б)

Примечание. Задача No1 – обязательна.

удовлетворительно – 4–8 баллов хорошо    9–11 баллов отлично    более 11 баллов

1

Функции к лабораторной работе No1

1. F (x) = 3 sin x + 0.35x − 3.8                  [2, 3]

2. F (x) = ex + 1 + e2x − 2                 [−1, 0]

3. F (x) = 1 − x − cos 1 − x                   [0, 1]

4. F (x) = 0.4 + arctan x − x                 [1, 2]

5. F (x) = tan x − cot x + x             [1, 2]

2         2

6. F (x) = 0.6 · 3x − 2.3x − 3            [2, 3]

7. F (x) = cos x − 2 sin x + x

2           1  1

[1, 2]

8. F (x) = 1 − 0.4x2 − arcsin x                 [0, 1]

9. F (x) = 0.1x2 − x ln x           [1, 2]

10. F (x) = tan x − 1 tan3 x + 1 tan5 x − 1                  [0, 0.8]

3             5               3

11. F (x) = arccos x − 1 − 0.3x3                  [0, 1]

12. F (x) = 3x − 4 ln x − 5           [2, 4]

13. F (x) = ex − e−x − 2           [0, 1]

14. F (x) = sin(ln x) − cos(ln x) + 2 ln x                [1, 3]

15. F (x) = ex + ln x − 10x             [3, 4]

16. F (x) = x tan x −   1

[0.2, 1]

3

17. F (x) = 3 ln2 x + 6 ln x − 5             [1, 3]

18. F (x) = x2 − ln(1 + x) − 3               [2, 3]

19. F (x) = 2x sin x − cos x            [0.4, 1]

20. F (x) = ln x − x + 1.8            [2, 3]

x2

21. F (x) = cos x − e     +x−1                [1, 2]

2

22. F (x) = 1 − x + sin x − ln(1 + x)                  [0, 1.5]

23. F (x) = 3x − 14 + ex − e−x                [1, 3]

24. F (x) = x + cos(2 + x0.52 )             [0.5, 1]

2

Запись данных в файл

Помимо перенаправления потока вывода в файл, (вроде такого:

./a.out > proga.dat) можно использовать метод, когда при исполнении программы создается файл, в который записываются данные. Пример такой программы:

...

int main(void){

...

FILE *DF;

DF = fopen(“tra.dat”,“w”);

...

for (i=1; i<=np; i++)

{

...

fprintf(DF,“%d %f %f \n”,i,a(i),b(i)); // собственно запись данных

}

fclose (DF);

}

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

f open из стандартной библиотеки. функция f open берет внешнее имя, проводит некоторые обслуживающие действия и переговоры с операционной системой и возвращает внутреннее имя, которое должно использоваться при последующих чтениях из файла или записях в него. Это внутреннее имя, называемое “указателем файла” (в нашем случае DF ), фактически является указателем структуры, которая содержит информацию о файле. В этом примере tra.dat – имя файла, w – от “write” – указание на то, что в файл будем что-то записывать. Другие возможные варианты:

“r” – чтение, “r+” – чтение с дозаписью, “a” -дозапись.

Функция f close является обратной по отношению к f open;

она разрывает связь между указателем файла и внешним именем, установленную функцией f open, и высвобождает указатель файла для другого файла.

3

Построение графиков

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

Для того, чтобы запустить gnuplot необходимо:

* Открыть терминал

* В командной строке перейти в директорию, содержащую файлы с данными

* Дать команду gnuplot

Таким образом оказывается запущена интерактивная среда, где с помощью несложных команд можно строить графики. Например, для построения графика функции sin(x) необходимо ввести: plot sin(x). Откроется дополнительное окно с изображением функции.

Для отображения численных данных, содержащихся в файле, необходимо ввести:

для отображения функции точками

* plot “foo.dat”

для отображения функции линиями

* plot “foo.dat” with lines

4

Нахождение корней уравнения с заданной точностью

Метод дихотомии (метод половинного деления)

сводится к последовательному разбиению интервала пополам.

Формальный алгоритм состоит в следующем:

Если уравнение F (x) = 0, где F (x) - непрерывная на отрезке

[a, b] функция, удовлетворяющая условию F (a)F (b) < 0, для нахождения корня с точностью отрезок [a, b] делится пополам и из двух полученых выбирается тот полуинтервал, на концах которого знаки F (x) разные. Затем процесс деления повторяется до тех пор, пока длина интервала не станет меньше . Когда размер интервала оказывается меньше требуемой точности, корень считается найденным.

Метод Ньютона

Действительный корень x уравнения F (x) = 0 вычисляется методом Ньютона с помощью итерационного уравнения:

F (xk )

xk+1 = xk −    F (xk )

Процесс сходится к точному значению корня, если начальное приближение x1 выбрано так, что:

2

F (x1 )F (x1 ) < |F (x1 )|

Оценка погрешности k-го приближения производится по приближенной формуле:

F (xk )F (xk ) <

В программе кроме функции f un следует использовать также функцию df un - производную исходной функции.

5

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Задания на лабораторные работы
Размер файла:
40 Kb
Скачали:
0