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

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

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

> нахождение корня уравнения x=F(x), помогите пожалуйста решить, моя курсовая =(
xlinx
сообщение 2.05.2007 18:03
Сообщение #1





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

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


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

То что написала я (позориться даже не хочется) только не смейтесь :'(

 
uses crt;

var
ep:extended;
tx:extended;
eps:extended;
x0:extended;

function f(x:extended):extended;
begin
f:=ln(x)+x*x;
end;

begin
clrscr;
write('Eps= ');
readln(eps);
ep:=1.;
tx:=0.00001;
writeln('X':10,'eps':10);
repeat
while (f(tx)*f(tx+ep)>0) do tx:=tx+ep;
ep:=ep/2;
x0:=tx+ep;
if (f(x0)=0) then
begin
writeln('Exact root: ',x0:10:6);
halt(0);
end;
writeln(x0:10:6,ep:10:6);
until (ep<eps);
readln;
end.


.


так или нет?? если нет, то помогите пожалуйста написать

Сообщение отредактировано: xlinx - 2.05.2007 18:42
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xlinx
сообщение 5.05.2007 13:37
Сообщение #2





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

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


1.Метод дихотомии (деления отрезка пополам)
Программа находит корень уравнения F(x) = 0, где F(x) - непрерывная на отрезке [a,b] функция, удовлетворяющая условию F(a)F(B) < 0. Для нахождения корня отрезок [a,b] делится пополам и выбирается тот полуинтервал, на концах которого знаки F(x) разные. Затем процесс деления повторяется до тех пор, пока длина интервала не станет меньше Eps.

Uses Crt;

Function f(x: Double): Double;
Begin
f := 1 / (Exp(x * Ln(2))) - 10 + 0.5*Sqr(x)
End;

Var
x, Eps, a, b, c: Double;
n: Integer;

begin
ClrScr;
Writeln('Введите значения a и b'); Read(a, b);
WriteLn('Введите точность Eps'); Read(Eps);

n := 0;
Repeat
c := (a + b) / 2;
If (f(a) * f©) < 0 Then b := c
Else a := c;
Inc(n)
Until (b - a) <= Eps;

x := (a + b) / 2;
WriteLn('Корень равен x=', x:10:7);
WriteLn('Количество делений = ',n);
ReadKey
end.

объясните мне пожалуйста как это сделали, я ничего не поняла, пожалуйста..
откуда взялось вот это f := 1 / (Exp(x * Ln(2))) - 10 + 0.5*Sqr(x) ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 20.07.2025 10:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"