Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2010, 00:06   #1
electrovolk
 
Регистрация: 29.12.2010
Сообщений: 3
Сообщение уравнение x=f(x) методом касательный и методом хорд в делфи

привет всем
помогите пожалуста решить уровнение или хотя бы дайте подсказку
но у меня есть прога которая немного похожа на мою задачу
только вместо уровнения х=f(x) там сs(x)=0
в этом и моя проблема
мне все уши прожужали
много всяких версий
все смешалось
так что прошу спасать




(код задачи)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
c,d,a,b,x1,x2,xr1,xr2:real; {xr1, xr2 – переменные для записи ответов; a, b - первоначальные точки для метода хорд; с – третья точка в методе хорд; х1, х2 – точки для метода касательных; d – погрешность}

implementation

{$R *.dfm}

Function y1(x:real):real; {наша функция}
begin
y1:=cos(x);
end;

Function y2(x:real):real;
begin
y2:=-sin(x);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
x2:=1; {Метод касательных. Присвоили точку отсчета, так сказать}
d:=0.005; {задали погрешность}
while (abs(x2-x1)>d) do
begin
x1:=x2;
x2:=x1-(y1(x1)/y2(x2)); {Формула расчета следующей точки, а впоследствии и искомого значения, для метода касательных}
end;
xr1:=x2;
a:=0; {Начинаем метод хорд с задания отрезка [a;b] для поиска}
b:=3.15;
while ((abs(a-b)>d)and(y1(c)<>0)) do
begin
c:=a+abs(y1(a)/(y1(a)-y1(b)))*(b-a); {формула для метода хорд}
if (y1(c)*y1(a)<0) then
b:=c
else
a:=c;
end;
xr2:=c; {получили ответ}
Label1.Caption:=’Метод касательных:’+FloatToStr(xr1)+’ Метод хорд:’+FloatToStr(xr2); {вывод ответа}
end;

end.
electrovolk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти корень методом хорд на с++ Вика 13 Помощь студентам 3 31.10.2010 19:55
найти корень методом хорд в C++ Shikarmo4000 Помощь студентам 2 23.05.2010 14:03
решение уравнения методом хорд и методом Ньютона Маргоша)) Общие вопросы Delphi 1 21.04.2010 20:40
Решение методом хорд Тонущий коржик Помощь студентам 0 03.12.2009 20:59
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24