Математическая постановка задачи нахождения корня нелинейного уравнения
Принципы разработки математических моделей, алгоритмов и программ. Нахождение значения корней нелинейного уравнения. Метод секущих (модификация метода Ньютона). Описание входной и выходной информации. Построение графика и место поиска корня уравнения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 08.07.2014 |
Размер файла | 435,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Математическая постановка задачи нахождения корня нелинейного уравнения
Математическая постановка задачи
Математическая постановка задачи предусматривает нахождение корня нелинейного уравнения. Для решения нелинейного уравнения приводим его к виду . Затем необходимо выделить интервал , на котором существует единственный корень уравнения (этап отделения корня). На втором этапе уточняем решение. Первый этап невозможно алгоритмизировать в общем виде, поэтому применяем графический способ. При графическом способе уравнение вида представляем в виде
.
Метод секущих (модификация метода Ньютона) является двухшаговым. Применяется если функция задана таблично. Выражаем производную через конечную разность:
;
;
(1)
Вычисления продолжаются до тех пор, пока выполняется условие:
Описание входной и выходной информации
В окне программы вводятся заданные действительные значения: а=0,5; в=0,1; е=0,001, также мы выбрали интервал на оси . Уравнение
приводим к виду и прописываем в тексте программы:
f := sin(a*(x*x)+b)/cos(a*(x*x)+b)-x*x; //
Задание функции
По заданной функции, нажатием на соответствующую кнопку, строим график. На экран выводится график функции. Согласно графику выбираем два значения близкие к корню уравнения и вносим их в соответствующие окна программы . При нажатии на кнопку "Решение" программа производит вычисление корня по формуле:
В окне "ListBox" выводится значение корня уравнения и количество потребовавшихся итераций для его вычисления.
Блок - схема метода математический уравнение корень нелинейный
Распечатка текста программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
Chart1: TChart;
Series1: TLineSeries;
Button2: TButton;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
Button3: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const n=100;
var
Form1: TForm1;
a,b,x0,x1,x2,e,xn,xk,dx:real; // Объявление переменных
count:integer; // Объявление переменных
implementation
{$R *.dfm}
function f (x : real) : real; // Задание функции
begin
f := sin(a*(x*x)+b)/cos(a*(x*x)+b)-x*x; // Задание функции
end;
{Вычисление значения функции}
procedure TForm1.Button1Click(Sender: TObject);
begin
count := 0; {Счетчик итераций}
e:=strtofloat(labelededit3.text);
x1:=strtofloat(labelededit4.text);
x2:=strtofloat(labelededit7.text);
Repeat
inc(count); // Инкремент счётчика
x0 := x1;
x1 := x2;
x2 := x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
until abs(x2-x1) < e; {Условие окончания счета}
ListBox1.Items.Add('корень равен '+floattostr(x2)); // Вывод решения на экран
ListBox1.Items.Add('количество итераций '+floattostr(count)); // Вывод колличеста итераций на экран
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
a:=strtofloat(labelededit1.text);
b:=strtofloat(labelededit2.text);
xn:= strtofloat(labelededit5.text);
xk:= strtofloat(labelededit6.text);
chart1.BottomAxis.automatic:=false; // Отключаем автоматическое определение параметров осси аргументов
chart1.bottomaxis.minimum:=xn; // Минимальное значение
chart1.bottomaxis.maximum:=xk; // Максимальное значение
dx:=(xk-xn)/n;
for count:=0 to n do // По точкам строим график в цикле
begin
series1.AddXY(xn+dx*count,f(xn+dx*count),'',clteecolor);
end;
end;
end.
Результат работы программы
На рисунке 1 изображено окно программы после запуска.
Рисунок 1. окно программы после запуска
На рисунке 2 изображено окно программы после нажатия на кнопку "Построить график".
Рисунок 2. После нажатия на кнопку "Построить график".
После постройки графика, необходимо ввести приблизительное место поиска корня уравнения, вводя значения х 1 и х 2(рис.3).
Рисунок 3. Ввод значений х 1 и х 2 (х 1=-2, х 2=1).
После нажатия на кнопку "Решение" появится найденный корень уравнения и количество итераций (рис.4).
Рисунок 4. Решение ("корень равен 0,4534... количество итераций 9").
Проверка корректности работы ПО
Проверка осуществляется в программе "mathcad".
На рисунке 5 изображено окно программы "mathcad", в которой выполнено решение данного нелинейного уравнения.
Рисунок 5. Решение нелинейного уравнения.
Размещено на Allbest.ru
...Подобные документы
Анализ метода касательных (метода секущих Ньютона), аналитическое решение нелинейного уравнения. Описание алгоритма решения задачи, пользовательских идентификаторов, блок-схем, программного обеспечения. Тестирование программы на контрольном примере.
курсовая работа [97,1 K], добавлен 10.01.2014Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.
курсовая работа [568,3 K], добавлен 07.03.2015Отделение действительных корней нелинейного уравнения. Метод хорд и касательных (Ньютона), геометрическая интерпретация. Графическая схема алгоритма. Описание реализации базовой модели в MathCAD. График сравнения числа итераций в зависимости от точности.
курсовая работа [2,0 M], добавлен 16.05.2013Разработка программы для расчета корня уравнения в определенном отрезке, по количеству итераций. Рисование в окне консоли на языке программирования C++. Реализация вывода графика функции и корня уравнения. Математическая модель и алгоритм решаемой задачи.
курсовая работа [521,3 K], добавлен 09.07.2017Математическое описание, алгоритм и программа вычисления нелинейного уравнения методом дихотомии. Метод половинного деления. Метод поиска корней функции. Написание текста программы с комментариями. Проведение тестовых расчетов. Вывод ответа на экран.
курсовая работа [67,2 K], добавлен 15.02.2016Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Определение недостатков итерационного численного способа нахождения корня заданной функции (метод Ньютона). Рассмотрение основ математического и алгоритмического решения поставленной задачи, ее функциональной модели, блок-схемы и программной реализации.
курсовая работа [364,8 K], добавлен 25.01.2010Применение методов касательных (Ньютона) и комбинированного (хорд и касательных) для определения корня уравнения. Разработка алгоритма решения и его описание его в виде блок-схем. Тексты программ на языке Delphi. тестовый пример и результат его решения.
курсовая работа [923,7 K], добавлен 15.06.2013Проверить условие сходимости и записать расчетные формулы для нахождения корня уравнения. Составить блок-схему алгоритма, программу решения задачи. Вычисления определенного интеграла методом Симпсона. Построить график функции Y=1/sqr(3sin(x)+2cos(x)).
курсовая работа [29,6 K], добавлен 02.10.2008Использование повторяющегося процесса. Нахождение решения за определенное количество шагов. Применение метода хорд и метода простой итерации. Методы нахождения приближенного корня уравнения и их применение. Построение последовательного приближения.
курсовая работа [849,1 K], добавлен 15.06.2013Методика разработки программного модуля для нахождения методом хорд корня уравнения x3-x-0,3=0 с точностью до 0,001 на языке программирования Visual Basic for Application. Схема программного модуля и описание процедуры обработки кнопки "Найти корни".
курсовая работа [394,0 K], добавлен 08.09.2010Решение нелинейного уравнения. Отделение корней - исследование количества, характера и расположения корней, нахождение их приближенных значений. Уточнение корня до заданной степени точности. Численное интегрирование и квадратурные формулы прямоугольников.
курсовая работа [51,9 K], добавлен 04.02.2009Методика реализации решения нелинейного уравнения в виде процедуры-подпрограммы следующими методами: хорд, касательных (Ньютона), простой итерации, половинного деления. Основные методы уточнения корней уравнения. Программное решение задачи, алгоритм.
курсовая работа [4,0 M], добавлен 27.03.2011Реализация решения нелинейного уравнения с заданными параметрами в виде процедуры-подпрограммы. Графический метод отделения корней уравнения. Основные методы уточнения корней уравнения. Описание процедур и функций, общий алгоритм и текст программы.
курсовая работа [1,7 M], добавлен 27.03.2011Сравнение эффективности программ Excel и Mathcad при решении задач нахождения корней нелинейного уравнения и поиска экстремумов функции. Проведение табулирования функции на заданном интервале. Построение графика двухмерной поверхности в Excel и Mathcad.
курсовая работа [1,4 M], добавлен 07.05.2013Составление блок-схемы и алгоритма программы для решения уравнения с приближенным значением корня по методу Ньютона, расчета приближенного значения интеграла по формуле трапеций, вычисления уравнения длины вектора. Типы формул общего члена суммы.
курсовая работа [41,3 K], добавлен 15.12.2012Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Программирование нестандартных функций, задач оптимизации, дифференциального уравнения и аппроксимации с помощью языка Паскаль. Алгоритм и программа операций над матрицами. Нахождение значения корней нелинейного уравнения по методу половинного деления.
курсовая работа [1,1 M], добавлен 12.08.2011Рассмотрение процесса разработки системы нахождения нулей функции. Изучение вычисления корня уравнения методом Ньютона или касательных. Основы проектирования графического интерфейса пользователя и описание алгоритма, тестирование готовой программы.
курсовая работа [1,2 M], добавлен 23.02.2014