![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
mafia1232 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
для уравнения 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 Сообщение отредактировано: mafia1232 - |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что, очень трудно посмотреть FAQ ПРЕЖДЕ чем задать вопрос? Обязательно плодить одни и те же темы еще и еще раз?
![]() FAQ: Численное решение и визуализация |
mafia1232 |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
эту тему в FAQ я видел, но я не понимаю куда вставить свое уравнение. а если взять решение из Faq то прога выдает ощибку 8087 в
Код Begin F := Sqr(Arg) - 2 End; извините, но в паскале не разбираюсь ![]() Сообщение отредактировано: mafia1232 - |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
напиши первой строчкой в программе
{$n+}
подключение математического сопроцессора для работы с вещественными числами. Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
исправте если неправильно пожайлуста. метод хорд для уравнения выше.
Исходный код program xord; uses Crt; const eps = 0.00001; var lB, rB, x, C, C2 : real; function Fun(x : real) : real; begin Fun := (15*x*x*x*x) - (4*x*x*x)-(6*x*x)-(4*x) - 1; end; function GetC(a,b : real) : real; begin GetC := (Fun(B)*a - Fun(a)*B) / (Fun(B) - Fun(a)); end; begin lB := -1; rB := 0; ClrScr; repeat C := GetC(lB,rB); if (Fun(lB)*Fun© > 0) then lB := C else rB := C; WriteLn('X = ',C:10:10); C2 := GetC(lB,rB); until (abs(C2 - C) < eps); ReadLn; end. Сообщение отредактировано: volvo - |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Что может быть не правильно ? Все что тебе надо было сделть, это вставить свое уравнение и граници поиска.
![]() Если ты не изменял ничего кроме этого, то все правильно. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
" x " получается очень много, уравнение надо простое брать или производную от уравнения?. и еще вопрос :"что такое приближение в методе Ньютона"
Сообщение отредактировано: mafia1232 - |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(mafia1232 @ 29.05.05 11:34) " x " получается очень много, уравнение надо простое боать или производную от уравнения? Если бы исходный текст не был изменен, таких вопросов не было бы... А в измененном тексте разбирайтесь самостоятельно... Сумели изменить - ... |
mafia1232 |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
справился с хордми по вашему примеру, но так и не понял что такое начальное приближение для метода касательных и как его вычислить. Начальное приближение случайно не начальная точка отсчета до корня или начало отрезка в который входит корень?
Сообщение отредактировано: mafia1232 - |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата(mafia1232 @ 29.05.05 11:52) начало отрезка в который входит корень? :yes: |
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Слушай, ну что с тобой ? там же дальше черным по белому написано
Метод Ньютона(касательных) прошу прощения, не допонял, ты не не нашел, а не понял в чем там соль да ? ;) Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
тогда последний вопрос: что дописать к методу Ньютона (основа из вашего макета) что бы он показывал корень, а не переходил к окну программы команда
Код 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; Var a, Eps: Extended; begin WriteLn('vvedite priblegenie a'); Read(a); WriteLn('vvedite to4nost Eps'); Read(Eps); WriteLn('koren raven x= ', newton(a, Eps) ![]() readln; end. Сообщение отредактировано: volvo - |
klem4 |
![]()
Сообщение
#13
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Все работает, скорее всего ты вводишь "плохие данные", и где-нибудь получается делиние на 0 или корень из отрицательного ...
а по поводу привильно ли счетает, это опять же, смотря что ты исправлял. Сообщение отредактировано: klem4 - Эскизы прикрепленных изображений ![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
ты не понял он выходит не посредством ошибки, а просто корень не показывает, а показывает только если ты прогу второй раз запускаешь. А считает она правильно.
|
klem4 |
![]()
Сообщение
#15
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Щас в Борланде запущу.
поставь uses crt;
второй строчкойхмм странно, не получислось, тогда uses crt;
в начале, а вместо
readln;
-
repeat until keypressed;
Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#16
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот прога pascal
Прикрепленные файлы ![]() |
mafia1232 |
![]()
Сообщение
#17
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?
Сообщение отредактировано: mafia1232 - |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Или поменяй Read на ReadLn... Это тоже решит проблему...
|
klem4 |
![]()
Сообщение
#19
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(mafia1232 @ 29.05.05 12:35) Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr? После основного Begin
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#20
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Или поменяй Read на ReadLn... Это тоже решит проблему там как раз и был readln |
![]() ![]() |
![]() |
Текстовая версия | 15.04.2025 11:33 |