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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2017, 20:04   #1
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию Уравнение методом секущей (Pascal)

Нужно решить уравнение 0.1*x^2-ln(x)=0 на интервале [1, 2], с точностью
е=0.0001 методом секущей
Для метода секущей нужно использовать модуль
У меня постоянно выдает один ответ, и при том не правильный, не понимаю в чем ошибка

Код модуля:
Код:
unit metod;
Interface
type
  func=function (x:real):real;
  function secant (var x0, x:real; e:real; f:func):real;
Implementation
 function secant (var x0, x:real; e:real; f:func):real;
 var d, y, r:real;
 begin r:=x-x0; d:=f(x0);
 repeat
  y:=f(x);
  r:=r/(d-y)*y;
  d:=y;
  x:=x+r;
 until abs(r)<e;
 secant:=x;
 end; end.
Код программы:
Код:
program main;
uses metod;
{$F+}
function f(x:real):real;
begin
f:=0.1*sqr(x)-x*ln(x);
end;
{$F-}
var x0, x, e:real;
begin
writeln ('Введите значение начала и конца интеравала (x0, x)');
readln (x0, x);
writeln ('Введите значение точности (e)');
readln (e);
writeln ('Значение функции=', secant(x0,x,e,@f):6:2);
end.
Jon_Morgan вне форума Ответить с цитированием
Старый 02.03.2017, 21:50   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Так какая же функция?
Эта -
Цитата:
Сообщение от Jon_Morgan Посмотреть сообщение
уравнение 0.1*x^2-ln(x)=0
Или эта-
Код:
f:=0.1*sqr(x)-x*ln(x);
Они обе имеют корни на [1;2]. Разные конечно.

PS Вроде ваш secant работает. Только зачем имя функции @f , а не просто f ? При вызове secant.
И зачем var перед x,x0 в объявлении/описании secant? Можно и без него.

Последний раз редактировалось type_Oleg; 02.03.2017 в 22:13.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
квадратное уравнение методом Хорд и методом касательных Pomio1 Помощь студентам 1 24.11.2011 00:37
уравнение x=f(x) методом касательный и методом хорд в делфи electrovolk Помощь студентам 0 30.12.2010 00:06
уравнение методом итераций Golovastik Общие вопросы Delphi 2 22.06.2009 15:57
Решение уравнения методом деления отрезка пополам. Методом секущей. Panda196 Паскаль, Turbo Pascal, PascalABC.NET 3 25.11.2008 09:06