![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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 - 29.05.2005 11:29 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что, очень трудно посмотреть FAQ ПРЕЖДЕ чем задать вопрос? Обязательно плодить одни и те же темы еще и еще раз?
![]() FAQ: Численное решение и визуализация |
mafia1232 |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
эту тему в FAQ я видел, но я не понимаю куда вставить свое уравнение. а если взять решение из Faq то прога выдает ощибку 8087 в
Код Begin F := Sqr(Arg) - 2 End; извините, но в паскале не разбираюсь ![]() Сообщение отредактировано: mafia1232 - 29.05.2005 10:52 |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
напиши первой строчкой в программе
{$n+} подключение математического сопроцессора для работы с вещественными числами. Сообщение отредактировано: klem4 - 29.05.2005 10:53 -------------------- 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 - 29.05.2005 12:08 |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Что может быть не правильно ? Все что тебе надо было сделть, это вставить свое уравнение и граници поиска.
![]() Если ты не изменял ничего кроме этого, то все правильно. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
" x " получается очень много, уравнение надо простое брать или производную от уравнения?. и еще вопрос :"что такое приближение в методе Ньютона"
Сообщение отредактировано: mafia1232 - 29.05.2005 11:37 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(mafia1232 @ 29.05.05 11:34) " x " получается очень много, уравнение надо простое боать или производную от уравнения? Если бы исходный текст не был изменен, таких вопросов не было бы... А в измененном тексте разбирайтесь самостоятельно... Сумели изменить - ... |
mafia1232 |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
справился с хордми по вашему примеру, но так и не понял что такое начальное приближение для метода касательных и как его вычислить. Начальное приближение случайно не начальная точка отсчета до корня или начало отрезка в который входит корень?
Сообщение отредактировано: mafia1232 - 29.05.2005 11:52 |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата(mafia1232 @ 29.05.05 11:52) начало отрезка в который входит корень? :yes: |
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Слушай, ну что с тобой ? там же дальше черным по белому написано
Метод Ньютона(касательных) прошу прощения, не допонял, ты не не нашел, а не понял в чем там соль да ? ;) Сообщение отредактировано: klem4 - 29.05.2005 11:59 -------------------- 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 - 29.05.2005 12:07 |
klem4 |
![]()
Сообщение
#13
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Все работает, скорее всего ты вводишь "плохие данные", и где-нибудь получается делиние на 0 или корень из отрицательного ...
а по поводу привильно ли счетает, это опять же, смотря что ты исправлял. Сообщение отредактировано: klem4 - 29.05.2005 12:14 Эскизы прикрепленных изображений ![]() -------------------- 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 - 29.05.2005 12:20 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#16
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот прога pascal
Прикрепленные файлы ![]() |
mafia1232 |
![]()
Сообщение
#17
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?
Сообщение отредактировано: mafia1232 - 29.05.2005 12:36 |
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 |
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 4:59 |