|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2008, 19:11 | #1 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
Метод простых итераций в Delphi
Вот полное задание:написать программу, предназначенную для графической визуализации функции, соответствующей выданному варианту. По графику функции провести исследование: на выбранной области допустимых значений указать количество и определить интервалы локализации нулей функции, максимумов и минимумов. Заданным методом решения нелинейных алгебраических уравнений на выбранном интервале локализации уточнить нуль функции (используя исходную функцию) или экстремум (используя производную исходной функции). Вычисление значений и производных реализовать с использованием процедур или функций, определяемых пользователем. При построении графиков и вычислении значений и производных функций осуществлять проверку аргумента на принадлежность области допустимых значений.
Метод решения-метод простых итераций. Функция: y=a0+a1*x+a2*x^2+a3*ln(a4*x)+a5*ln( a6*x^2) |
25.11.2008, 15:56 | #2 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
Я не знаю, как написать решение уравнения методом простых итераций. Остальное несложно для меня, сама напишу.
|
25.11.2008, 16:32 | #3 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Ищем корень уравнения: y(x)=0
Для этого функцию преобразуем к виду: x=F(x) Далее уточняем корень методом простой итерации: Код:
|
25.11.2008, 16:35 | #4 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
а уравнение это к чему приравнивать?к х что ли?
|
25.11.2008, 16:43 | #5 | |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Цитата:
Затем из этого уравнения выражаем X Получаем уравнение X=F(x) Функция F(x) и используется в методе простой итерации для уточнения корня. --- Краткую теорию посмотрите здесь http://www.exponenta.ru/educat/syste...nonlinear2.asp Последний раз редактировалось _Dmitry; 25.11.2008 в 16:49. |
|
27.11.2008, 23:53 | #6 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
Высвечивает ошибку в самом уравнении. Может я вообще все неправильно сделала?((
unit Unit11; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm11 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form11: TForm11; implementation {$R *.dfm} procedure TForm11.Button1Click(Sender: TObject); Var a0,a1,a2,a3,a4,a5,a6,x0,x:real; epsilon,y:integer; begin x0:=strtoint(edit1.Text); epsilon:=strtoint(edit2.Text); a0:=strtoint(edit3.Text); a1:=strtoint(edit4.Text); a2:=strtoint(edit5.Text); a3:=strtoint(edit6.Text); a4:=strtoint(edit7.Text); a5:=strtoint(edit8.Text); a6:=strtoint(edit10.Text); y:=a0+a1*x+a2*x*x+a3*ln(a4*x)+a5*ln (a6*x*x); y(x):=0; repeat x0:=x; x*a1:=-a0-a2*x*x-a3*ln(a4*x)-a5*ln(a6*x*x); until abs(x0-x)<=epsilon; end; end. |
28.11.2008, 20:15 | #7 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Код:
Последний раз редактировалось _Dmitry; 28.11.2008 в 20:17. |
28.11.2008, 21:23 | #8 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
Написал "Invalid floating point operation"
|
28.11.2008, 21:37 | #9 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
1. Алгоритм не будет работать при любых коэффициентах функции, т.к. у него есть определённая область сходимости: |F'(x)|<1.
2. Если выходит сообщение "Invalid floating point operation", смотри пункт 1. |
28.11.2008, 21:41 | #10 |
Пользователь
Регистрация: 04.11.2008
Сообщений: 32
|
Так было выполнено это условие,я проверила. И с вашими числами оно выполняется, но эта надпись высвечивается.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как решить нелинейное уравнение методом простых итераций??? | Bonifaciy | Помощь студентам | 3 | 13.11.2008 17:30 |
текст программы для решения нелинейного уравнения методом простых итераций | Dyst | Помощь студентам | 2 | 14.05.2008 22:00 |
Cимплекс метод на Delphi | Diamand | Помощь студентам | 3 | 14.03.2008 14:51 |
Уравнение метода итераций | SPQR | Помощь студентам | 2 | 12.11.2007 01:26 |