Математическая постановка задачи нахождения корня нелинейного уравнения
Принципы разработки математических моделей, алгоритмов и программ. Нахождение значения корней нелинейного уравнения. Метод секущих (модификация метода Ньютона). Описание входной и выходной информации. Построение графика и место поиска корня уравнения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Математическое описание, алгоритм и программа вычисления нелинейного уравнения методом дихотомии. Метод половинного деления. Метод поиска корней функции. Написание текста программы с комментариями. Проведение тестовых расчетов. Вывод ответа на экран.
курсовая работа [67,2 K], добавлен 15.02.2016Определение недостатков итерационного численного способа нахождения корня заданной функции (метод Ньютона). Рассмотрение основ математического и алгоритмического решения поставленной задачи, ее функциональной модели, блок-схемы и программной реализации.
курсовая работа [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