Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Решение алгебраического уравнения

Автор:   •  Ноябрь 20, 2022  •  Лабораторная работа  •  916 Слов (4 Страниц)  •  93 Просмотры

Страница 1 из 4

[pic 1]

Лабораторная работа 8.

Решение алгебраического уравнения

Цель работы

Изучение метода деления отрезка пополам для определения корня алгебраического уравнения f(x)=0 на заданном отрезке [a,b]. Изучение понятия погрешности вычисления.

Контрольные вопросы

  1. Абсолютная погрешность – модуль разности между точным числом А и приближенным, .[pic 2]
  2. Относительная погрешность – это отношение абсолютной погрещности и точного числа.
  3. Погрешность вычислений складывается из: погрешностей, допущенных при постановке задачи за счет ее упрощения (погрешности задачи), погрешностей, связанных с использованием приближенных методов решения задачи (погрешности метода), погрешностей, связанных с ограниченным количеством разрядов, используемых для представления чисел (погрешности округления) ,погрешностей, возникающих при выполнении операций над приближенными числами (погрешности операций).
  4. Для использования в программе математических функций необходимо в программе подключить библиотеку <math.h> и указать в терминале ключ –lm при компиляции.

Текст программы

#include <stdio.h>

#include <math.h>

#define EPS 0.00001

#define QTY 20

void table(double, double);

double Func(double);

double sircle(double);

double FindRoot(double, double);

 

void main(void)

{

         double x1 = -1.0, x2 = 3.0, root = FindRoot(x1, x2);

         printf("Корень: %.10g\n", sircle(root));

         printf("При этом абсолютная погрешность равна: %f, а относительная: %.10f\n\n", sircle(EPS), (EPS/(sircle(root)-EPS)));

         table(x1, x2);

}

 

void table(double x1, double x2)    //вывод таблицы со значениями

{

         printf(" ___________________________\n");

         printf("|     x       |    F(x)     |\n");

         printf("|_____________|_____________|\n");

         double step = (x2-x1)/QTY;

         for (int i = 0; ((i<=step)||(x1<=x2)); i++)

         {

                 printf("|%-+10.1f   |%+10.10f|\n", x1, Func(x1));

                 printf("|_____________|_____________|\n");

                 x1+=0.2;

         }

                 

}

 

double Func(double x)  //математическая функция

{

         double y = sin(x)-x+1;

         return y;

}

double sircle(double x) //функция округления до нужного количества знаков

{                      

        x = (x/EPS);

        x = (int)x;

        x = (x)*EPS;

...

Скачать:   txt (4.6 Kb)   pdf (163.2 Kb)   docx (21.4 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club