Программирование на языке высокого уровня (Си)

Разработка программы для вычисления корней уравнения различными методами. Вычисление определенного интеграла методом прямоугольников, методом трапеций, методом Симпсона. Блок-схема вычисления корней уравнения, вычисления определенного интеграла.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.