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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> задачи на численное решение нелинейных уравнений, подскажите с курсовой
сообщение
Сообщение #1


Новичок
*

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

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


для уравнения 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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Что, очень трудно посмотреть FAQ ПРЕЖДЕ чем задать вопрос? Обязательно плодить одни и те же темы еще и еще раз? angry.gif
FAQ: Численное решение и визуализация
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


эту тему в FAQ я видел, но я не понимаю куда вставить свое уравнение. а если взять решение из Faq то прога выдает ощибку 8087 в
Код
Begin
    F := Sqr(Arg) - 2
  End;


извините, но в паскале не разбираюсь sad.gif

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


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


напиши первой строчкой в программе
{$n+}


подключение математического сопроцессора для работы с вещественными числами.

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


исправте если неправильно пожайлуста. метод хорд для уравнения выше.
Исходный код
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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Что может быть не правильно ? Все что тебе надо было сделть, это вставить свое уравнение и граници поиска. huh.gif

Если ты не изменял ничего кроме этого, то все правильно.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


" x " получается очень много, уравнение надо простое брать или производную от уравнения?. и еще вопрос :"что такое приближение в методе Ньютона"

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


Гость






Цитата(mafia1232 @ 29.05.05 11:34)
" x " получается очень много, уравнение надо простое боать или производную от уравнения?

Если бы исходный текст не был изменен, таких вопросов не было бы... А в измененном тексте разбирайтесь самостоятельно... Сумели изменить - ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


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

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


Гость






Цитата(mafia1232 @ 29.05.05 11:52)
начало отрезка в который входит корень?
:yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Слушай, ну что с тобой ? там же дальше черным по белому написано
Метод Ньютона(касательных)

прошу прощения, не допонял, ты не не нашел, а не понял в чем там соль да ? ;)

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

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

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


тогда последний вопрос: что дописать к методу Ньютона (основа из вашего макета) что бы он показывал корень, а не переходил к окну программы команда
Код
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)10.gif7);
readln;
end.


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


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Все работает, скорее всего ты вводишь "плохие данные", и где-нибудь получается делиние на 0 или корень из отрицательного ...

а по поводу привильно ли счетает, это опять же, смотря что ты исправлял.

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


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


ты не понял он выходит не посредством ошибки, а просто корень не показывает, а показывает только если ты прогу второй раз запускаешь. А считает она правильно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Щас в Борланде запущу.

поставь
uses crt;
второй строчкой

хмм странно, не получислось, тогда
uses crt;
в начале, а вместо
readln;
-
repeat until keypressed;


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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


вот прога pascal


Прикрепленные файлы
Прикрепленный файл  _____________.PAS ( 704 байт ) Кол-во скачиваний: 292
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

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

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


Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?

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


Гость






Или поменяй Read на ReadLn... Это тоже решит проблему...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата(mafia1232 @ 29.05.05 12:35)
Спасибо klem4 ! наконец работает как должна. а куда вставить clrscr?


После основного
Begin


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

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

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


Цитата
Или поменяй Read на ReadLn... Это тоже решит проблему
там как раз и был readln
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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