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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 22:23   #1
Veina
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 34
По умолчанию

Дано уравнение f(x)=1+sin(x)-1.14*e^(-x)
Найти наименьший корень этого уравнения с точностью eps=0.5*10^(-4)
Вывести x0, x1, x2, ..., xn
Прогу пишем на паскале.
За x0 берем левый конец отрезка [0,1], т.е. x0=0
Код:
Program KAS;
{Уточняем  корень  уравнения  1+sin(x)-1.14*e^(-x)= 0 на отрезке [a,b] методом касательных.}
uses
 crt;
var
 A,B,faA,faB,faC,fbA,fbB,fbC,x1,x2,eps,e,o,p,raznica:real;
begin
 e:=2.71;
 clrscr;
 writeln ('Введите A и B:');
 readln(a,b);
 clrscr;
 writeln ('Введите eps:');
 readln(eps);
 clrscr;
 faA:=exp(ln(e)*A);   {f''(A)}
 faC:=faA-10;         {f' (A)}
 faB:=faA-10*A;       {f  (A)}
 fbA:=exp(ln(e)*B);   {f''(B)}
 fbC:=fbA-10;         {f' (B)}
 fbB:=fbA-10*B;       {f  (B)}
 if faB*fbB<0 then    {если удовлетворяет условию, то одно значение}
 begin
  if faB*faA>0 then
   x1:=A-faB/faC
  else
   x1:=B-fbB/fbA;
  x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
  raznica:=abs(x2-x1);
  while raznica>eps do
  begin
   x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
   raznica:=abs(x2-x1);
   x1:=x2;
  end;
  O:=x2;
  writeln('Одно значение:',o:0:8)
 end
 else
 begin
  x1:=A-faB/faC;
  x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
  raznica:=abs(x2-x1);
  while raznica>eps do
  begin
   x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
   raznica:=abs(x2-x1);
   x1:=x2
  end;
  O:=x2;
  x1:=B-fbB/fbA;
  x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
  raznica:=abs(x2-x1);
  while raznica>eps do
  begin
   x2:=x1-((-1.14*exp(ln(e)*(-x1))+sin(x)+1))/((-1.14*exp(ln(e)*x1)+cos(x)));
   raznica:=abs(x2-x1);
   x1:=x2
  end;
  P:=x2;
  if ((A<o) and (B<o)) or ((A>p) and(B>p)) or ((A>o) and ((A<p)) and ((B>o) and (B<p))) then
   writeln('Значений нет')
  else
   writeln('Первое значение:', o:0:8,' Второе значение:',p:0:8);
 end;
 readkey;
end.
Я уже запуталась. Помогите разобраться. Хоть кто-нибудь...пожалуйста....очень надо...

вообще смысл метода, чтоб понятнее было, здесь:
http://www.intuit.ru/department/calc...model/4/3.html

так никто и не поможет..........(((((((((.......ну хоть кто-нибудь отзовитесь...((((((

Последний раз редактировалось Stilet; 10.11.2010 в 18:52.
Veina вне форума Ответить с цитированием
Старый 10.11.2010, 18:29   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
uses Crt;
var  x,a,b,e: double;
function f1(z: double): double; {Основная функция}
begin
f1:= ln(z)-z+1.8;//заменить на свою
end;
function f2(z:double): double; {Производная от основной функции}
begin
f2:=1/z-1 ;//заменить на свою
end;
begin
Clrscr;
a:=2;b:=3;
write('e=');readln(e);
clrscr;
if f1(a)*f2(a)>0 then x:=a
else x:=b;
while abs(f1(x))>e do
   begin
     x:=x-f1(x)/f2(x);
   end;
Writeln (' В интервале от ',a:0:0,' до ',b:0:0,' с погрешностью ',e:0:5);
Writeln ('x=',x:0:5,' f(x)=',f1(x):0:5);
Readln
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решение линейных уравнений методом хорд и касательных subarimpra Помощь студентам 2 15.10.2010 21:33
Решить систему нелинейных уравнений методом ньютона Vint7_2009 Помощь студентам 8 06.12.2009 11:14
Решение нелинейных уравнений матодом Ньютона Гудвин Помощь студентам 1 09.10.2009 12:02
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24