Помощь - Поиск - Пользователи - Календарь
Полная версия: Метод Хорд, метод Ньютона
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Poison
Вычислить корни уравнения графически и уточнить один из них методом Хорд с точностью до 0,001
ctg(1,05x)-(x*x)=0 [(x*x)-квадрат]
Совершенно не представляю, как это делается. huh.gif
Есть еще две задачи на метод Ньютона и усовершенствованный метод Эйлера, но я даже не знаю, их просто решить или тоже программами. unsure.gif
Altair
1) А корни линейных уравнений или каких?
2) Как уточнять методом хорд ( я еще в школе учусь, не знаю, но если узнаю, помогу)
Poison
Кори уравнения ctg(1,05x)-(x*x)=0 .
Это был полный текст задания, других объяснений нет. Так что я располагаю теми же ресурсами - только сеть. Была книжка с формулами, но "ушла" sad.gif
Нашла такой алгоритм:
Метод хорд
Суть метода. Ориентирован на нахождение корня уравнения W'(x) в интервале [a,b], в котором есть две точки N и P, в которых знаки производных разные. Алгоритм метода хорд позволяет апроксимировать функцию W'(x) "хордой" и найти точку, в которой секущая графика W'(x) пересекает ось абсцис.
1. Следующее приближение к стационарной точке x* определяется по формуле
R = P - .
2. Вычислить W'( R ).
3. Если | W'( R )| < e , то закончить поиск. В противном стучае необходимо выбрать одну из точек P или N, чтоб знаки производных в этой точке и точке R были разные. Вернуться к 1.
Как видно по алгоритму, метод хорд реализованый на исследовании как знака производной, так и ее значении.
Надеюсь, разберусь, но ctg(1,05x)-(x*x)=0 я не знаю как решать.
Altair
Все ясно, вычислить графически, значит построить график, и определить точки пересечения (в данном случае с осью абсцисс)
Вот только это не точно будет.
Нужно наверное посмотреть пределы сначала (думаю она будет пересекать ось где-то близко к началу коорд.)
Попробую написать прогу...
Altair
Вот, что я уже сделал, - потроение графика
Код
uses graph;
const
x0=500; {Є®®а¤Ё­ вл ­ з «  Є®®а¤Ё­ в}
y0=200;
var
gm,gd:integer;
x,y1,i:integer;
y:real;
begin
{ gd:=detect;
initgraph(gd,gm,'');}
gd:=InstallUserDriver('vesa256',nil);
gm:=3;
initgraph(gd,gm,'');
{------------------}
setcolor(15);
{®бЁ Є®®а¤Ё­ в}
for i:=0 to 768 do putpixel(x0,i,8);
for i:=0 to 1024 do putpixel(i,y0,8);
For x:=-200 to 200 do
begin
 {ctg=cos/sin}
 If x<>0 then
 begin
  y:=cos(1.05*x)/sin(1.05*x)-x*x;
  y1:=trunc(y);
  PutPixel(x0+x,y0-y1,9)
 end
end;


readln;
closegraph
end.

Везу можно скачать отсуда:

http://forum.pascal.net.ru/index.php?showtopic=1871
Poison
Не хотелось бы тебя огорчать, но скачать оттуда ничего нельзя sad.gif
Altair
Цитата
Не хотелось бы тебя огорчать, но скачать оттуда ничего нельзя 

Странно, у меня качается. Вот форум... angry.gif . У многих не качается!
---
Могу по E-MAIL-у отправить.
---

Так вот про график, можешь откоментировать там
Цитата
{ gd:=detect;
initgraph(gd,gm,'');}

это, а закоментировать вот это:
Цитата
gd:=InstallUserDriver('vesa256',nil);
gm:=3;
initgraph(gd,gm,'');

Что-бы посмотреть график. (только x0,y0 измени)
----------------
попробую увеличить масштаб.
Poison
Отправь. Хотя (я в графике не разбираюсь sad.gif) если это драйвер, то у меня в каком-то учебнике был какой-то исходник...
У нас сегодня праздник - День Факультета, так что разбираться буду уже дома... Если еще буду соображать sad.gif
Altair
Код
uses graph;
const
x0=500; {Є®®а¤Ё­ вл ­ з «  Є®®а¤Ё­ в}
y0=400;
var
gm,gd:integer;
x1,y1,i:integer;
x,y:real;
begin
{ gd:=detect;
initgraph(gd,gm,'');}
gd:=InstallUserDriver('vesa256',nil);
gm:=3;
initgraph(gd,gm,'');
{------------------}
setcolor(15);
{®бЁ Є®®а¤Ё­ в}
for i:=0 to 768 do putpixel(x0,i,8);
for i:=0 to 1024 do putpixel(i,y0,8);
{ ббЁ¬Їв®вл: sin(1.05x)=0 => x=Џn}
x:=-9.01; {m}
while x<9 do
begin
 If x<>0 then y:=cos(1.05*x)/sin(1.05*x)-x*x;
 if (y>-2147483640) and (y<2147483640) then
 begin
  y1:=trunc(y*10);  {m - masshtab po OY}
  x1:=trunc(x*100)-100; {m}
  putpixel(x0+x1,y0-y1,7)
 end;
 x:=x+0.01;           {m}
end;

readln;
closegraph
end.

это графическое решение.
На экране видно, что пересечений много.
P.S.
E-MAIL напиши, чтобы я отпрaвил VESA драйвер.
P.S. Красивее графика чем этот я пожалуй еще не видел rolleyes.gif
Poison
Там, под моей фотографией, был mail - vaconda-auga@rambler.ru
Altair
Цитата
Там, под моей фотографией

Да, дейстительно.
Только кроме фото я ничего на сайте не увидел rolleyes.gif
Poison
Вот живет человек, а тут раз - и нет Интернета.
Пришлось модем покупать...
Извиняюсь, что не появилась раньше huh.gif :p2:
А теперь о хорошем - график действительно очень красивый! Спасибо тебе огромное! :p9: :D wub.gif
О методе Хорд: книжку я почти вернула - нашла того, кто ее забрал, так что все хорошо. Пока - хорошо smile.gif .
Еще раз извиняюсь, и еще раз спасибо smile.gif
Guest
junk
Вот это да!!!!!! Спасибо smile.gif
Только вот ссылка не работает sad.gif
Poison
Ой! Извините, это тоже мое сообщение, просто не могу привыкнуть, что меня не "узнают"... А может, ночь - соображаю плохо. (Если можно объединить как-то или удалить лишнее...)
Цитата
Если нужна литература то могу выслать(море книг)нас просто мучают с этими методами просто насмерть

Спасибо, думаю не нужна (надеюсь нас мучать не будут, на прошлой сессии вроде не очень доставали)
Еще раз спасибо за листинги smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.