0 / 0 / 0
Регистрация: 18.01.2019
Сообщений: 1
1

Как задать разрывную функцию в паскале

18.01.2019, 13:21. Показов 1399. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа, вычисляющая минимум функции на отрезке методом дихотомии. Функция задана строчкой f:=5/x+sqr(x). Метод работает и для разрывных функций. Помогите задать разрывную функцию, например, функцию f=(x-3)2,если 0<x<1; (x-2)2,если 1≤x<3.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
program n_2;
 function f(x: real): real;
  var x1, x2, x3: real;
 begin
    f:=5/x+sqr(x); // <---
 end;
  var a, b, x1, x2, x3, e, en, f1, f2, f3, k, n: real;
begin
  writeln ('Метод дихотомии');
  writeln ('Введите крайние точки отрезка');
  a:=0.5;
  writeln ('a=', a);
  b:=2;
  writeln ('b=', b);
  writeln ('Введите точность ');
  write ('e=');
  read (e);
  k:=0;
  n:=0;
  x2:=(a+b)/2;
  f2:=f(x2);
  n:=n+1;
  while ((b-a)/2)>e do 
  begin
  k:=k+1;
  x1:=(a+x2)/2;
  f1:=f(x1);
  n:=n+1;
   if f1<=f2 then 
    begin 
     b:=x2;
     x2:=x1;
     f2:=f1;
    end
   else
    begin
     x3:=(x2+b)/2;
     f3:=f(x3);
     n:=n+1;
     if f2<=f3 then 
      begin 
       a:=x1;
       b:=x3;
      end
     else 
      begin
       a:=x2;
       x2:=x3;
       f2:=f3;
      end;
    end;
  end;
  writeln ('Количество итераций ', k);
  writeln ('Количество вычислений значения функции ', n);
  writeln ('Минимум функции ', x2); 
  writeln ('Значение минимума функции ', f2);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2019, 13:21
Ответы с готовыми решениями:

Как задать строку в паскале
как задать строку в паскале длиной от 1 до 105 символов

Как правильно задать уравнение в паскале
Уравнение элемнтарное, но как в паскале записать не знаю, дайте совет. Вот само уравнение:...

как ввести функцию в паскале
Как ввести такую функцию в паскале? \int_{0.1}^{0.3}Tg^n(x)dx

Объясните как описать функцию в паскале
Как можно описать вот такую функцию в паскале док файл

1
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
18.01.2019, 14:54 2
Предлагаю так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses crt;
type func=function(x:real):real;
function f1(x:real):real;
begin
f1:=sqr(x-3)
end;
function f2(x:real):real;
begin
f2:=sqr(x-2);
end;
procedure min(a,b,e:real;f:func;var xm:real;var n:integer);
var dx,c:real;
begin
dx:=e/2;
n:=0;
repeat
 c:=(a+b)/2;
 if f(c-dx)>f(c+dx) then a:=c else b:=c;
 inc(n);
until b-a<e;
xm:=(a+b)/2;
end;
 
var e,xm1,xm2,xm,ym: real;
    n1,n2,n:integer;
begin
writeln ('Поиск мигимума методом дихотомии сложной функции');
writeln('При 0<x<1 f(x)=(x-3)^2 при 1<=x<3 f(x)=(x-2)^2');
repeat
write('Введите точность 0<e<1 e=');
readln(e);
until(e>0)and(e<1);
min(0,1,e,f1,xm1,n1);
writeln('На первом участке;');
writeln ('Количество итераций ', n1);
writeln ('Минимум функции в точке х=',xm1:0:2);
writeln ('Значение минимума функции=',f1(xm1):0:2);
writeln;
min(1,3,e,f2,xm2,n2);
writeln('На втором участке;');
writeln ('Количество итераций ', n2);
writeln ('Минимум функции в точке х=',xm2:0:2);
writeln ('Значение минимума функции=',f2(xm2):0:2);
writeln;
writeln('Результат:');
writeln ('Количество итераций ', n1+n2);
if f1(xm1)<f2(xm2) then
 begin
  xm:=xm1;
  ym:=f1(xm1)
 end
else
  begin
  xm:=xm2;
  ym:=f2(xm2)
 end;
writeln ('Минимум функции в точке х=',xm:0:2);
writeln ('Значение минимума функции=',ym:0:2);
end.
Использование функционального тира для АВС, Турбо и Free Pascal разное, это для АВС.
1
18.01.2019, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2019, 14:54
Помогаю со студенческими работами здесь

как написать функцию в паскале y=lnx+cos2x?
y=lnx+cos2x?

Как задать функцию
Подскажите пожалуйста как в матлабе сделать так, чтобы посчиталось значение функции, например y(b),...

Как задать функцию?
Как задать такую функцию x=-4 y=4 x=-4 x=4 f3(x,y)=2x-y^3 Графики должны выйти типа

Как процедуру в Паскале реализовать, как функцию в с++?
Здравствуйте! Есть код на Паскале. Нужно процедуру реализовать в С++ как функцию. Возможно ли в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru