Программирование на языке высокого уровня (Си)
Разработка программы для вычисления корней уравнения различными методами. Вычисление определенного интеграла методом прямоугольников, методом трапеций, методом Симпсона. Блок-схема вычисления корней уравнения, вычисления определенного интеграла.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 27.08.2017 |
Размер файла | 89,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Программирование на языке высокого уровня (Си)
1 Теоретическая часть. Вычисление корней уравнения
1.1 Вычисление корней уравнения методом деления отрезка пополам
Пусть нам дан отрезок [a,b], в котором расположено искомое значение корня x. Тогда задача заключается в нахождении корней нелинейного уравнения f(x)=0. Таким образом, если мы ищем ноль, то на концах отрезка функция должна быть противоположных знаков, то есть f(a)*f(b)<0. Разделим отрезок пополам и возьмем ту из половинок, на концах которой функция по-прежнему принимает значения противоположных знаков(, если f(a)*f(с)<0, то берем [a,c], если f(a)*f(с)>0, то [b,c]). Если значение функции в серединной точке оказалось искомым нулем, то процесс завершается[1].
1.2 Вычисление корней уравнения методом Ньютона
Найдем корни нелинейного уравнения f(x)=0. Задаём начальное приближение вблизи предположительного корня, после чего строим касательную к исследуемой функции в точке приближения, для которой находится пересечение с осью абсцисс. Эта точка и берётся в качестве следующего приближения(на рис. 1 мы можем увидеть, что последующее приближение лучше предыдущего ). И так далее, пока не будет достигнута необходимая точность.
Рис. 1 - Иллюстрация метода Ньютона.
Таким образом .[1]
2. Теоретическая часть. Вычисление определенного интеграла
2.1 Вычисление определенного интеграла методом прямоугольников
Требуется определить значение интеграла функции на отрезке [a,b]. Этот отрезок делится точками , , … , , на n равных отрезков длинной . Обозначим через , , … , , значение функции f(x) в точках , , … , , . Тогда , , - площади прямоугольников, образованных двумя соседними отрезками, отсюда следует что прямоугольников на один меньше, чем отрезков, таким образом получаем два метода вычисления, соответственно, левых и правых прямоугольников. Так как геометрический смысл интеграла - это площадь фигуры под графиком, то - метод левых прямоугольников, или - метод правых прямоугольников. [ 3]
2.2 Вычисление определенного интеграла методом трапеций
Метод может быть получен путём вычисления среднего арифметического между результатами применения формул правых и левых прямоугольников. Отличие состоит в аннулировании погрешности за период.[1,2]
Рис. 2 - Применение формулы трапеций для вычисления определенного интеграла.
2.3 Вычисление определенного интеграла методом Симпсона (метода парабол)
Пусть функция y=f(x) непрерывна на отрезке [a, b] и нам требуется вычислить определенный интеграл .
Разобьем отрезок [a, b] на n элементарных отрезков ,
i=1, 2,…, n, длины , точками . Пусть точки , i=1, 2,…, n являются серединами отрезков , i=1, 2,…, n соответственно. В этом случае все "узлы" определяются из равенства , i=1, 2,…, n.
На каждом интервале , i=1, 2,…, n подынтегральная функция приближается квадратичной параболой , проходящей через точки , , . Отсюда и название метода - метод парабол.
Это делается для того, чтобы в качестве приближенного значения определенного интеграла взять , который мы можем вычислить по формуле Ньютона-Лейбница. После всех математических сокращений получаем
[ 1,2].
3. Блок-схема вычисления корней уравнения
3.1 Вычисление корней уравнения методом деления отрезка пополам
3.2 Вычисление корней уравнения методом Ньютона
4. Блок схема. Вычисление определенного интеграла
4.1 Вычисление определенного интеграла методом левых прямоугольников
4.2 Вычисление определенного интеграла методом правых прямоугольников
4.3 Вычисление определенного интеграла методом трапеций
4.4 Вычисление определенного интеграла методом Симпсона
5. Практическая часть. Вычисление корней уравнения
5.1 Вычисление корней уравнения методом деления отрезка пополам
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
float E, x0, x1, x, z;
printf("Vvedite x0 i x1\n");
scanf("%f%f", &x0, &x1);
printf("Vvedite E\n");
scanf("%f", &E);
z=fabs(x1-x0);
while(z>=E)
{
x=(x1+x0)/2;
if ((2*pow(x0,2)+5*x0+2)* (2*pow(x,2)+5*x+2)<0) x1=x;
else x0=x;
z=fabs(x1-x0);
}
printf("x=%f", x);
getch();
}
5.2 Вычисление корней уравнения методом Ньютона
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
float x0, E, fx0;
printf("Vvedite x0\n");
scanf("%f", &x0);
printf("Vvedite E\n");
scanf("%f", &E);
fx0=(2*pow(x0,2)+5*x0+2)/( 4*x0+5);
while (fabs(fx0)>=E)
{
fx0=(2*pow(x0,2)+5*x0+2)/( 4*x0+5);
x0=x0-fx0;
}
printf("x=%.2f", x0);
getch();
}
Точное значение корней уравнений, посчитанное через дискриминант по формуле
, равно: x1=-2, x2=-0.5
Таблица 1
Погрешность для числа разбиения по отношению к точному значению |
|||||
0.1 |
0.01 |
0.001 |
0.0001 |
||
Метод деления отрезков пополам |
1.02539 1.12500 |
0.99793 1.00781 |
0.99983 0.99902 |
0.99998 1.00012 |
|
Метод Ньютона |
0.97 0.97 |
0.97 0.97 |
1 1 |
1 1 |
6 Практическая часть. Вычисление определенного интеграла
6.1 Вычисление определенного интеграла методом левых прямоугольников
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
const float x0=1, xn=3, e=2.718;
float k, rez, dx, i, s;
printf("Vvedite chislo razbienii k\n");
scanf("%f", &k);
s=0;
dx=fabs(xn-x0)/k;
for (i=x0; i<=xn-dx; i+=dx)
{
s=s+5*i/pow(e,i);
}
rez=s*dx;
printf("Otvet %f", rez);
getch();
}
6.2 Вычисление определенного интеграла методом правых прямоугольников
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
const float x0=1, xn=3, e=2.718;
float k, rez, dx, i, s;
printf("Vvedite chislo razbienii k\n");
scanf("%f", &k);
dx=fabs(xn-x0)/k;
s=0;
for (i=x0+dx; i<=xn; i+=dx)
{
s=s+5*i/pow(e,i);
}
rez=s*dx;
printf("Otvet %f", rez);
getch();
}
6.3 Вычисление определенного интеграла методом трапеций
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
const float x0=1, xn=3, e=2.718;
float k, rez, dx, i, s;
printf("Vvedite chislo razbienii k\n");
scanf("%f", &k);
dx=fabs(xn-x0)/k;
s=0;
for (i=x0+dx; i<=xn-dx; i+=dx)
{
s=s+ 5*i/pow(e,i);
}
s=dx*(((5*x0/pow(e,x0)+ 5*xn/pow(e,xn))/2)+s);
rez=s;
printf("Otvet %f", rez);
getch();
}
6.4 Вычисление определенного интеграла методом Симпсона
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
const float x0=1, xn=3, e=2.718;
float k, m, a, dx, i, s, s1, s2;
printf("Vvedite chislo razbienii k\n");
scanf("%f", &k);
s=0;
s1=0;
s2=0;
m=2*k;
a=1;
dx=fabs(xn-x0)/(m);
for (i=x0+dx; i<=xn-dx; i+=dx)
{
if (fmod(a,2)==0)
s1+= 5*i/pow(e,i);
else
s2+= 5*i/pow(e,i);
a++;
}
s=(((xn-x0)/(3*m)))*( 5*x0/pow(e,x0)+ 5*xn/pow(e,xn)+2*s1+4*s2);
printf("Integral f(x)= 5*x/pow(e,x) na otrezke ot %f do %f raven %f", x0, xn, s);
getch();
}
Точное значение определенного интеграла, посчитанное с помощью программы MathCad, равно: x1=2.683
Таблица 2
Погрешность для числа разбиения по отношению к точному значению |
|||||
50 |
100 |
200 |
500 |
||
Метод левых прямоугольников |
0.98285 |
0.99138 |
0.99563 |
0.99818 |
|
Метод правых прямоугольников |
1.01676 |
1.00833 |
1.00410 |
1.00157 |
|
Метод трапеций |
0.99980 |
0.99986 |
0.99987 |
0.99987 |
|
Метод Симпсона |
0.99987 |
0.99987 |
0.99987 |
0.99987 |
Список использованной литературы
программа интеграл уравнение
1. Письменный, Д. Т. Конспект лекций по высшей математике: полный курс / Д.Т. Письменный. - 10-е изд., испр. - М.: Айрис-пресс, 2011, 608 c.
2. Пискунов Н.С. Дифференциальное и интегральное исчисления: Учеб. для вузов. В 2-х т. Т.I: - М.: Интеграл-Пресс, 2001, 416 c.
3. Керниган Б.В., Ричи Д.М. «Язык С», 2009, 255 с.
Размещено на Allbest.ru
Подобные документы
Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Проверить условие сходимости и записать расчетные формулы для нахождения корня уравнения. Составить блок-схему алгоритма, программу решения задачи. Вычисления определенного интеграла методом Симпсона. Построить график функции Y=1/sqr(3sin(x)+2cos(x)).
курсовая работа [29,6 K], добавлен 02.10.2008Создание приложения, демонстрирующего решение нелинейного уравнения методом хорд, вычисление интеграла методом Симпсона. Характеристика системы программирования. Разработка мощных систем для работы с локальными и удаленными базами данных с помощью Delphi.
дипломная работа [846,0 K], добавлен 22.09.2012Математическое описание, алгоритм и программа вычисления определенного интеграла методом трапеций. Расчет n-значений исследуемой функции и вывод их в виде таблицы. Технические и программные средства. Входные и выходные данные, функциональное назначение.
курсовая работа [21,0 K], добавлен 03.01.2010Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019Аппроксимация линейной, степенной и квадратичной функции. Определение корней уравнения вида f(x)=0 методом половинного деления. Вычисление определенного интеграла методом прямоугольников, трапеций, парабол и Эйлера. Интерполяция формулой Лагранжа.
курсовая работа [1,3 M], добавлен 21.09.2011MPI - библиотека передачи сообщений на языке программирования C/C++, ее переносимость, стандартизация, эффективная работа, функциональность. Форматы фактических вызовов MPI. Метод прямоугольников для приближенного вычисления определенного интеграла.
курсовая работа [286,0 K], добавлен 20.06.2012Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.
курсовая работа [232,0 K], добавлен 27.05.2013Построение графика функции. Поиск корней уравнения методом половинного деления. Определение минимума функции методом перебора и значения аргумента. Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников.
контрольная работа [316,1 K], добавлен 13.11.2014Решение трансцендентного уравнения методом Ньютона. Построение графика функции. Блок-схема алгоритма решения задачи и программа решения на языке Pascal. Вычисление значения интеграла методом трапеции, блок-схема алгоритма, погрешности вычисления.
задача [163,4 K], добавлен 16.12.2009