Задание 1: Вычислить корень функции методом половинного деления

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

Вычисление корня функции

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

 

Цель работы: найти корень функции методом хорд и методом половинного деления.

 

Приборы и оборудование:

персональный компьютер

математический пакет MathCad

среда разработки: MS Visual Studio 2008 С++.

Выполнение работы

 

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

Функция:

Начало  
ввод a,b, epsilon  
abs(b-a)>epsilon    
h 26O74zClSZPRaTJKAvIdnzuGGIbvbxC19Nj4StbI/CGIpR1tj3WOabLUM6n6PVan9J7HjrpeAr9d bYN0B1FWJr9GYsH0fY5ziZvKwFtKGuzxjLo3awaCEvVUozjTeDzuhiIY4+RkhAYce1bHHqY5QmXU U9JvF74fpLUFWVb4UhzY0OYMBS1k4LoTu89qnz72cVBrP3PdoBzbIerXn2H+EwAA//8DAFBLAwQU AAYACAAAACEAt0xbg94AAAAKAQAADwAAAGRycy9kb3ducmV2LnhtbEyPPU/DMBCGdyT+g3VIbNRu ClFJ41QIVCTGNl3YLvE1CcR2FDtt4NdzTDDee4/ej3w7216caQyddxqWCwWCXO1N5xoNx3J3twYR IjqDvXek4YsCbIvrqxwz4y9uT+dDbASbuJChhjbGIZMy1C1ZDAs/kOPfyY8WI59jI82IFza3vUyU SqXFznFCiwM9t1R/HiaroeqSI37vy1dlH3er+DaXH9P7i9a3N/PTBkSkOf7B8Fufq0PBnSo/ORNE r2GlUt4SNSTrFAQDD/eKhYrJJSuyyOX/CcUPAAAA//8DAFBLAQItABQABgAIAAAAIQC2gziS/gAA AOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAh ADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAh ACuvsMJOAgAAYQQAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1sUEsBAi0AFAAGAAgA AAAhALdMW4PeAAAACgEAAA8AAAAAAAAAAAAAAAAAqAQAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAA BAAEAPMAAACzBQAAAAA= ">
c=(b-a)/2+a, d=f(a)*f(c)  
d≤0  


а=с
b=c

нет да

 

конец
Вывод результата С

 

 

 


// double.cpp : Defines the entry point for the console application.

//

 

#include "stdafx.h"

#include "stdio.h"

#include "math.h"

double f (double);

 

 

int main(void)

{ double a,b,c,d,x, eps;

printf ("Vvod b, a, eps\n" );

scanf("%le%le%le", &b, &a, &eps);

while ( (b-a)>eps)

{ c=(a+b)/2;

d=f(a)*f(c);

if (d>0) a=c;

else b=c;

}

x=(a+b)/2;

printf ("korenb = %15.5le\n" , x);

scanf ("%le%", &a);

return 0;

}

double f (double x)

{return pow(pow(exp(x)+exp(-x),0.5)+pow(exp(2*x)+exp(-2*x),0.5),1/exp(x))/(sin(x)+cos(2*x)+exp(pow(x*x+x,0.5)))-0.75;}

 

Вывод: при нахождении корня методом половинного деления на промежутке между 0 и 2 корень получился 3.03