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

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

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

> хорда и итерация, один ответ?
сообщение
Сообщение #1





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

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


Вопрос вот в чем.написано 2 проги..одна методом хорд другая методом итераций(взяты коды с вашего сайта)

вот уравнение: tg(0,47x+0,2)=x*x;
eps=0.0001;

вот текст хорды:
{$n+}
Uses Crt;
Var
x, Eps, a, b, c: Double;
n: Integer;

Function f(x: Double): Double;
Begin
f := (sin(0.47*x+0.2))/(cos(0.47*x+0.2))-x*x
End;

Function Chord(a, b: Double): Double;
Begin
Chord := (f(b)*a - f(a)*b) / (f(b) - f(a))
End;

begin
ClrScr;
Writeln('vvedu a и b');
Read(a, b);

WriteLn('vvedu Eps');
Read(Eps);

ClrScr;
n := 0;
Repeat
C := Chord(a, b);
If f(a)*f© > 0 Then a := c
Else b := c;
Inc(n)
Until Abs(Chord(a, b) - C) < Eps;

x := c;
WriteLn(' x=', x:10:7);
WriteLn('kol-vo iteraciy = ',n);
ReadKey
end.


вот итерация:
program ITERAT;
uses crt;

const max_iter=100;

var
i :integer;
x,x0,eps,M :real;

function F(x:real):real;
begin
F:=(sin(0.47*x+0.2))/(cos(0.47*x+0.2))-x*x;
end;

begin
clrscr;
write('vvedu x='); readln(x);
write('vvedu eps='); readln(eps);

i:=0;
repeat
M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости}
x0:=x;
x:=x0+F(x0)/M; {сердце метода итераций}
inc(i);
writeln('---iteraciya',i:3,' x=',x);
writeln('F(x)=',F(x),' tochnost=',abs(x-x0));
until (abs(x-x0)<=eps)or(i>max_iter);

if (abs(x-x0)<=eps) then writeln('Ответ: X=',x)
else writeln('otvet ne naiden! za ',max_iter:0,' wagov iteraciya ne sowlas.');

end.


Препод говорит что ответ должен быть один и тот же..максимум он должен отличаться на 0.0001((
но ответы у меня разные(((

помогите студенту плз(((надо до понедельника... wacko.gif

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

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


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

 





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