Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 12:50   #1
Dolbak2000
 
Регистрация: 01.06.2011
Сообщений: 9
По умолчанию Метод отделения корней

Прошу прощения название темы не верное, тут рассматривается метод касательных. Такая проблемка. Мне нужно написать программу по методу отделения корней, сам "скелет" программы есть но он не работает. Так вот, мне надо исправить его что бы он работал, и желательно для каждой строки описать что в ней делается, т.к мне придётся отчитывать эту программу(

Цитата:
program mkas;
usues wincrt;
var a,b,eps,x,x0,t:real;
k:integer;
function f(u:real):real;
begin
f:=sin(pi/4)*cos(u/2)+1/sqr(u)+exp(-u);
end;
functin f1(u:real):real;
begin
f1:=cos(pi+4)*cos(u/2)+sin(pi+4)*(-sin(u/2))*0.5-2/(u)-exp(-u)
end;
k:=0;
x:=x0;
repeat;
t:=f(x)/f1(x)
x:=x-t;
k:=k+1;
until abs(t)<=eps;
end;
begin
writeln('ввод x0,eps');
readln(x0,eps);
newton(x0,eps,x);
writeln('корень ур-я',x:5:3,'f(x)=',f(x):7:5,'k=',k);
end.
P.S где то возможно написан вообще бред т.к писал с тетради одногрупницы. Очень прошу помочь.

Последний раз редактировалось Dolbak2000; 27.12.2011 в 12:53.
Dolbak2000 вне форума Ответить с цитированием
Старый 27.12.2011, 12:56   #2
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

Код:
 program mkas;
 usues wincrt;

 var a,b,eps,x,x0,t:real;
     k:integer;

 function f(u:real):real;
 begin
 f:=sin(pi/4)*cos(u/2)+1/sqr(u)+exp(-u);
 end;

 functin f1(u:real):real;
 begin
 f1:=cos(pi+4)*cos(u/2)+sin(pi+4)*(-sin(u/2))*0.5-2/(u)-exp(-u)
 end;

//здесь видимо должно быть объявление функции newton
//а здесь begin
 k:=0;
 x:=x0;
 repeat;
    t:=f(x)/f1(x)
    x:=x-t;
    k:=k+1;
 until abs(t)<=eps;
 end;

 begin
 writeln('ввод x0,eps');
 readln(x0,eps);
 newton(x0,eps,x);
 writeln('корень ур-я',x:5:3,'f(x)=',f(x):7:5,'k=',k);
 end.
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 27.12.2011, 13:02   #3
Dolbak2000
 
Регистрация: 01.06.2011
Сообщений: 9
По умолчанию

не запускается( Пишет ошибка 36. Begin expected. Пытался поставить begin в итоге он сказал после
Цитата:
until abs(t)<=eps;
end;
поставить точку(
Dolbak2000 вне форума Ответить с цитированием
Старый 27.12.2011, 13:10   #4
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

Код:
program Project1;

uses sysutils;

 var a,b,eps,x,x0,t:real;
     k:integer;

 function f(u:real):real;
 begin
 f:=sin(pi/4)*cos(u/2)+1/sqr(u)+exp(-u);
 end;

 function f1(u:real):real;
 begin
 f1:=cos(pi+4)*cos(u/2)+sin(pi+4)*(-sin(u/2))*0.5-2/(u)-exp(-u)
 end;

procedure newton(x0:real; eps:real; var x:real);
begin
 k:=0;
 x:=x0;
 repeat;
    t:=f(x)/f1(x);
    x:=x-t;
    k:=k+1;
 until abs(t)<=eps;
 end;

 begin
 writeln('ввод x0,eps');
 readln(x0,eps);
 newton(x0,eps,x);
 writeln('корень ур-я=',x:5:3,' f(x)=',f(x):7:5,' k=',k);
 readln;
 end.
вот вам работающий код
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 27.12.2011, 13:16   #5
Dolbak2000
 
Регистрация: 01.06.2011
Сообщений: 9
По умолчанию

Спасибо большое, если вам не составит труда могли бы вы для каждой строки описать что в ней делается)
Dolbak2000 вне форума Ответить с цитированием
Старый 27.12.2011, 13:52   #6
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

Я не знаю, как работает этот метод. А разбираться в этом "за спасибо" мне лень
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исследовать метод квадратных корней и метод Холецкого для решения СЛАУ Vит@x@ Помощь студентам 0 22.11.2011 10:47
C++ Нахождение корней методом отделения и уточнения DarkSwan Помощь студентам 0 19.10.2010 15:39
Ошибка Run-time Error при изменении знака отделения дробной части kipish_lp Microsoft Office Excel 4 06.08.2010 09:23
Нахождение корней урав-я (метод Итераций) Delphi 7 AppleKing Помощь студентам 3 02.03.2010 23:13