для уравнения 15*x^4-4*x^3-6*x^2-4*x-1=0 написать решение методом касательных и хорд с точность 10^-5 производная первого порядка 60*x^3-12*x^2-12*x-4=0
volvo
29.05.2005 14:27
Что, очень трудно посмотреть FAQ ПРЕЖДЕ чем задать вопрос? Обязательно плодить одни и те же темы еще и еще раз? FAQ: Численное решение и визуализация
mafia1232
29.05.2005 14:50
эту тему в FAQ я видел, но я не понимаю куда вставить свое уравнение. а если взять решение из Faq то прога выдает ощибку 8087 в
Код
Begin F := Sqr(Arg) - 2 End;
извините, но в паскале не разбираюсь
klem4
29.05.2005 14:52
напиши первой строчкой в программе
{$n+}
подключение математического сопроцессора для работы с вещественными числами.
mafia1232
29.05.2005 15:26
исправте если неправильно пожайлуста. метод хорд для уравнения выше.
Что может быть не правильно ? Все что тебе надо было сделть, это вставить свое уравнение и граници поиска.
Если ты не изменял ничего кроме этого, то все правильно.
mafia1232
29.05.2005 15:34
" x " получается очень много, уравнение надо простое брать или производную от уравнения?. и еще вопрос :"что такое приближение в методе Ньютона"
volvo
29.05.2005 15:36
Цитата(mafia1232 @ 29.05.05 11:34)
" x " получается очень много, уравнение надо простое боать или производную от уравнения?
Если бы исходный текст не был изменен, таких вопросов не было бы... А в измененном тексте разбирайтесь самостоятельно... Сумели изменить - ...
mafia1232
29.05.2005 15:52
справился с хордми по вашему примеру, но так и не понял что такое начальное приближение для метода касательных и как его вычислить. Начальное приближение случайно не начальная точка отсчета до корня или начало отрезка в который входит корень?
volvo
29.05.2005 15:56
Цитата(mafia1232 @ 29.05.05 11:52)
начало отрезка в который входит корень?
:yes:
klem4
29.05.2005 15:57
Слушай, ну что с тобой ? там же дальше черным по белому написано Метод Ньютона(касательных)
прошу прощения, не допонял, ты не не нашел, а не понял в чем там соль да ? ;)
mafia1232
29.05.2005 16:04
тогда последний вопрос: что дописать к методу Ньютона (основа из вашего макета) что бы он показывал корень, а не переходил к окну программы команда
Код
readln;
не помогает. а вот сама прога
Исходный код
{$n+} Program metodnewton;
Function newton(start, Eps: Extended): Extended; Var X, prev: Extended;
{ function } Function F(Arg: Extended): Extended; Begin F :=(15*x*x*x*x)-(4*x*x*x)-(6*x*x)-(4*x)-1 End;
{ proizvodnaya } Function Deriv(Arg: Extended): Extended; Begin Deriv := (60*x*x*x)-(12*x*x)-(12*x)-4 End;
Begin X := start; Repeat prev := X; X := prev - F(prev) / Deriv(prev); Until Abs(X - prev) <= Eps; newton := X End;
Все работает, скорее всего ты вводишь "плохие данные", и где-нибудь получается делиние на 0 или корень из отрицательного ...
а по поводу привильно ли счетает, это опять же, смотря что ты исправлял.
mafia1232
29.05.2005 16:15
ты не понял он выходит не посредством ошибки, а просто корень не показывает, а показывает только если ты прогу второй раз запускаешь. А считает она правильно.
klem4
29.05.2005 16:16
Щас в Борланде запущу.
поставь
uses crt;
второй строчкой
хмм странно, не получислось, тогда
uses crt;
в начале, а вместо
readln;
-
repeatuntil keypressed;
mafia1232
29.05.2005 16:18
вот прога pascal
mafia1232
29.05.2005 16:35
Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?
volvo
29.05.2005 16:35
Или поменяй Read на ReadLn... Это тоже решит проблему...
klem4
29.05.2005 16:38
Цитата(mafia1232 @ 29.05.05 12:35)
Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?
После основного
Begin
mafia1232
29.05.2005 16:38
Цитата
Или поменяй Read на ReadLn... Это тоже решит проблему