IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> пересечение кривых(метод Ньютона), Help!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Здравствуйте, не могли бы помочь по такой темке? все что находил(включая этот форум) - только нахождение точки пересечеия с осью координат, а тут даны 2 функции, отрезок [a,b], и естественно эпсилон, к-е передаются в функцию, где находится абсциса пересечения. есть работающая процедура комбинированного метода(касательных и хорд) где с обоих сторон ищется точка, но как ни пытался - переделать под Ньютона не могу. в FAQ был, там с одной кривой и осьюsad.gif
вот небольшой контекст к программе:

type TFunc=function(x:real):real;
................
{процедура root}
................
Root(f1,f2,f1p,f2p,3.500,4.000,eps1,x1);
{f1,f2 - функции введенные в отдельной поцедуре вручную; f1p,f2p - первые производные, тоже в отдельной
процедуре вручную;a и b подбираются под примерное пересечение, eps1=0.0001, x - искомый корень}



а вот и процедура нахождение корня:


procedure Root(f,g,f1,g1:TFunc;a,b,eps:real;var x:real);
{ funkciya IsT1 vozvrashaet TRUE, esli f'(x) i f''(x) odinakovogo znaka i FALSE v obratnom slu4ae}
function IsT1:boolean;
var x:real;
begin
x:=(a+b)/2;
IsT1:=(f1(x)-g1(x)>0) = (f((a+b)/2)-g((a+b)/2)<(f(a)-g(a)+f(b)-g(b))/2)
end;
var c:real;
Type1:boolean;
i:integer;
begin
Type1:=IsT1;
if (f(a)-g(a))*(f(b)-g(b))>0 then writeln('Neverno zadany a,b') else
begin
i:=0;
while (b-a)>eps do begin
c:=(a*(f(b)-g(b)) - b*(f(a)-g(a)))/(f(b)-g(b)-f(a)+g(a));
if Type1 then begin a:=c; c:=b end else begin b:=c;c:=a end;
c:=c-(f(С)-g(С))/(f1(С)-g1(С));
if Type1 then b:=c else a:=c;
i:=i+1;
end;
end;
x:=(a+b)/2;
end;



P.S. заранее спасибо кто ответит и попытается помочь. мне 11.01.07 к вечеру нужна готовая.. а я уже не знаю что делать.. остался последний шанс - ваша помощь sad.gif

Сообщение отредактировано: Sundery -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


http://eco.sutd.ru/Study/Informat/Newton.html Поможет?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
а тут даны 2 функции
На функции посмотреть можно? Или ты хочешь чтобы обрабатывались ЛЮБЫЕ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


не, я там был уже.. это ж матрицы, а у меня даны две функции типа y=2^x-1, y=(1-x)/3, y=x^5. если и переделывать, то думаю то, что в FAQ - ближе к моему заданию..
я вроде бы и сам принцип метода понимаю, а реализовать че-то никак sad.gif

Сообщение отредактировано: Sundery -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Цитата
не, я там был уже.. это ж матрицы, а у меня даны две функции типа y=2^x-1, y=(1-x)/3, y=x^5. если и переделывать, то думаю то, что в FAQ - ближе к моему заданию..
А это читал? Где векторы, там и матрицы smile.gif . В низу страницы (смотри первую ссылку). есть решение для n уравнений. Для двух переделать сам сможешь?

Сообщение отредактировано: Archon -


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Archon @ 11.01.2007 1:46) *

А это читал? Где векторы, там и матрицы smile.gif . В низу страницы (смотри первую ссылку). есть решение для n уравнений. Для двух переделать сам сможешь?

там всего одна ссылка на ту страничку что ты уже давал smile.gif))

конечно, переделать можно любую программу, если используется именно этот метод, но я че-т не очень понимаю что там происходит - голова от проги таак болит.. что думать не получается (2-е суток уже сижу) sad.gif

кстати, в некоторых примерах используется начальное приближение, а мне нужно, чтоб по данному отрезку (ДВЕ переменные) программа сама находила, какой участок выбрать для дальнейшего приближения.

блин, до вечера нужно сделать её sad.gif((
могу выложить для полного понимания не только эту процедуру, а всю прогу. (если это действительно поможет,
потому что там на самом деле почти нечего дописывать)

спасибо ещё раз. надеюсь на помощь

Сообщение отредактировано: Sundery -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.09.2020 19:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name