Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример выполнения задания. Написать программу поиска простых корней функции f(x) = 4x – 7sinx на отрезке [a, b] c шагом h и точностью e методом деления отрезка пополам





Написать программу поиска простых корней функции f (x) = 4 x – 7sin x на отрезке [ a, b ] c шагом h и точностью e методом деления отрезка пополам.

Вид формы и полученные результаты представленный на рис. 7.2.

Текст программы Unit 1. cpp может иметь следующий вид:

typedef double (*type_f)(double);

double fun(double);

double Metod_Del_2(type_f, double, double, double);

//--------------------- Текст функции-обработчика кнопки Расчет ----------------------

double a, b, x, eps, h, y, r;

int nom=0, iter;

a = StrToFloat(Edit1-> Text); b = StrToFloat(Edit2-> Text);

eps = StrToFloat(Edit3-> Text);

h = StrToFloat(Edit4-> Text);

Memo1-> Lines-> Add(" Функция 4*x - 7*sin(x)");

Chart1-> Series[0]-> Clear();

for(x = a-h; x< b+h; x+=h)

Chart1-> Series[0]-> AddXY(x, fun(x));

Memo1-> Lines-> Add(" ------ Корни ------");

for(x = a; x< =b; x+=h){

if(fun(x)*fun(x+h)< 0){

nom++;

y = Metod_Del_2(fun, x, x+h, eps);

Memo1-> Lines-> Add(IntToStr(nom)+" -й = " +FloatToStrF(y, ffFixed, 8, 6));

}

}

if(nom==0) Memo1-> Lines-> Add(" На отрезке корней НЕТ! ");

//------------------------- Метод деления отрезка пополам ---------------------

double Metod_Del_2(type_f f, double x0, double x1, double eps) {

double x2, y0, y2;

y0=f(x0);

do {

x2=(x0+x1)/2; y2=f(x2);

if(y0*y2 > 0) {

x0 = x2; y0 = y2;

}

else x1 = x2;

} while (fabs(x1-x0)> eps);

return (x0+x1)/2;

}

//------------------------- Заданная функция f (x) ---------------------

double fun(double x) {

return 4*x - 7*sin(x);

}

 

Рис. 7.1

Рис. 7.2







Дата добавления: 2014-11-10; просмотров: 690. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


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

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и ре­гистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА)...

Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия