Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
abc7
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
#1

Отделение корней уравнения графическим способом. - Turbo Pascal

30.03.2012, 18:43. Просмотров 1717. Ответов 4
Метки нет (Все метки)

Помогите составить программу отделяющую корни уравнения 2*x2-5=2x графическим способом.В модуле graph вообще не разбираюсь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2012, 18:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отделение корней уравнения графическим способом. (Turbo Pascal):

Отделение корней
Вот программа отделяющая корни трансцендентных и алгебраических уравнений, но...

Объединить 2 задачи в одну. Отделение корней и метод половинного деления
Нужно объединить две задачи в одну. Первая задача Отделение корней, а вторая...

Отделить корни уравнения f(x)=0 графическим методом
Отделить корни уравнения f(x)=0 графическим методом.Найти приблеженное значение...

Отделить корни уравнения графическим методом
1. Составить алгоритм и программу для решения задачи: Отделить кони уравнения...

Отделение и уточнение корней нелинейных уравнений
Сделал вроде все правильно. Но программа решения не находит. Или дело в том,...

Нахождение корней уравнения
Дано: a, b, c. Если а≠0, выяснить, имеет ли уравнение ax2+bx+c=0 корни. Если да...

4
Puporev
Модератор
54139 / 41772 / 28880
Регистрация: 18.05.2008
Сообщений: 98,321
30.03.2012, 19:31 #2
Цитата Сообщение от abc7 Посмотреть сообщение
отделяющую корни уравнения
В смысле определить интервалы в которых находятся корни, или что?

Добавлено через 21 минуту
Ну вот как-то так.
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
uses graph;
function F(x:real):real;
begin
F:=2*x*x-5-exp(ln(2)*x);
end;
var xn,xk,max,min,mx,my,dx:real;
    x:real;
    x0,y0,i,c,n:integer;
    s,s1:string;
    a:array[1..20,1..2] of integer;
begin
x0:=0;
initgraph(x0,y0,'');
xn:=-7;xk:=7;{интервал по Х}
x0:=getmaxX div 2;
mx:=(x0-30)/xk;{масштаб по Х}
y0:=getmaxY div 2;
max:=F(xn);
min:=F(xn);
x:=xn;
while x<=xk do
 begin
  if F(x)>max then max:=F(x);
  if F(x)<min then min:=F(x);
  x:=x+0.05;
 end;
if max>abs(min) then my:=(y0-30)/max
else my:=(y0-30)/abs(min);
setbkcolor(15);{цвет фона}
setcolor(8);{цвет линий}
line(0,y0,getmaxX,y0);{оси}
line(x0,0,X0,getmaxY);
for i:=1 to 10 do{максимальное количество засечек в одну сторону}
  begin
    line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));{засечки на оси У}
    line(x0-3,y0+round(i*my*10),x0+3,y0+round(i*my*10));
    {подпись оси У}
    str(i*10,s);
    outtextXY(x0-25,y0-round(i*my*10),s);{соответственно засечкам}
    outtextXY(x0-30,y0+round(i*my*10),'-'+s);
    line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
    line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
    {подпись оси Х}
    str(i,s);
    outtextXY(x0+round(i*mx),y0+10,s);
    outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0+5,10, 'Y');
{график}
x:=xn;
dx:=0.01;
n:=0;
moveto(x0+round(x*mx),y0-round(F(x)*my));
while x<=xk do
 begin
  setcolor(12);
  setlinestyle(0,0,1);
  lineto(x0+round(x*mx),y0-round(F(x)*my));
  if F(x)*F(x+dx)<0 then
   begin
    setcolor(9);
    setlinestyle(0,0,3);
    circle(x0+round(x*mx),y0-round(F(x)*my),2);
    n:=n+1;
    if x<0 then
     begin
      a[n,2]:=trunc(x);
      a[n,1]:=a[n,2]-1;
     end
    else
     begin
      a[n,1]:=trunc(x);
      a[n,2]:=a[n,1]+1;
     end;
   end;
  x:=x+dx;
 end;
{название}
setcolor(12);
outtextXY(x0+30,20,'Grafik functii y=2x^2-5-2^x');
outtextXY(x0+50,40,'na intervale [-7;7]');
y0:=getmaxY-200;
outtextXY(50,y0,'intervaly kornej');
for i:=1 to n do
 begin
  str(a[i,1],s);
  str(a[i,2],s1);
  outtextXY(50,y0+20*i,'['+s+';'+s1+']');
 end;
readln
end.
1
abc7
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
30.03.2012, 19:57  [ТС] #3
Цитата Сообщение от Puporev Посмотреть сообщение
В смысле определить интервалы в которых находятся корни, или что?
Да,нужны интервалы.Спасибо за программу.А можно как-то сделать чтобы строилось два графика(y=2*(x^2)-5 и y=2^x) и выводились интервалы на которых они пересекаются(если это вас не затруднит)?
0
Puporev
Модератор
54139 / 41772 / 28880
Регистрация: 18.05.2008
Сообщений: 98,321
30.03.2012, 20:19 #4
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
uses graph;
function F1(x:real):real;
begin
F1:=2*x*x-5;
end;
function F2(x:real):real;
begin
F2:=exp(ln(2)*x);
end;
var xn,xk,max,min,mx,my,dx:real;
    x:real;
    x0,y0,i,c,n:integer;
    s,s1:string;
    a:array[1..20,1..2] of integer;
begin
x0:=0;
initgraph(x0,y0,'');
xn:=-7;xk:=7;{интервал по Х}
x0:=getmaxX div 2;
mx:=(x0-30)/xk;{масштаб по Х}
y0:=getmaxY div 2;
max:=F1(xn);
min:=F1(xn);
x:=xn;
while x<=xk do
 begin
  if F1(x)>max then max:=F1(x);
  if F1(x)<min then min:=F1(x);
  if F2(x)>max then max:=F2(x);
  if F2(x)<min then min:=F2(x);
  x:=x+0.05;
 end;
if max>abs(min) then my:=(y0-30)/max
else my:=(y0-30)/abs(min);
setbkcolor(15);{цвет фона}
setcolor(8);{цвет линий}
line(0,y0,getmaxX,y0);{оси}
line(x0,0,X0,getmaxY);
for i:=1 to 10 do{максимальное количество засечек в одну сторону}
  begin
    line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));{засечки на оси У}
    line(x0-3,y0+round(i*my*10),x0+3,y0+round(i*my*10));
    {подпись оси У}
    str(i*10,s);
    outtextXY(x0-25,y0-round(i*my*10),s);{соответственно засечкам}
    outtextXY(x0-30,y0+round(i*my*10),'-'+s);
    line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
    line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
    {подпись оси Х}
    str(i,s);
    outtextXY(x0+round(i*mx),y0+10,s);
    outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0+5,10, 'Y');
{график}
x:=xn;
dx:=0.001;
n:=0;
while x<=xk do
 begin
  putpixel(x0+round(x*mx),y0-round(F1(x)*my),12);
  putpixel(x0+round(x*mx),y0-round(F2(x)*my),13);
  if (abs(F1(x)-F2(x))<0.15)and(abs(F1(x+dx)-F2(x+dx))>0.15) then
   begin
    setcolor(9);
    setlinestyle(0,0,3);
    circle(x0+round(x*mx),y0-round(F1(x)*my),2);
    n:=n+1;
    if x<0 then
     begin
      a[n,2]:=trunc(x);
      a[n,1]:=a[n,2]-1;
     end
    else
     begin
      a[n,1]:=trunc(x);
      a[n,2]:=a[n,1]+1;
     end;
   end;
  x:=x+dx;
 end;
{название}
setcolor(12);
outtextXY(x0+30,20,'Grafik functii y=2x^2-5');
setcolor(13);
outtextXY(x0+30,40,'Grafik functii y=2^x');
setcolor(8);
outtextXY(x0+30,60,'na intervale [-7;7]');
y0:=getmaxY-200;
outtextXY(50,y0,'intervaly kornej');
for i:=1 to n do
 begin
  str(a[i,1],s);
  str(a[i,2],s1);
  outtextXY(50,y0+20*i,'['+s+';'+s1+']');
 end;
readln
end.
1
abc7
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
30.03.2012, 20:54  [ТС] #5
Еще раз спасибо за помощь.
0
30.03.2012, 20:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2012, 20:54
Привет! Вот еще темы с решениями:

Нахождение корней уравнения
помогите пожалуйста написать программу. дана функция f(x)=lnx-0.5/х2 в...

Нахождение корней квадратного уравнения
Всем привет))) вроде легкая задача на нахождение корней в квадратном уравнении...

Нахождение корней квадратного уравнения
реализовать в виде модуля набор подпрограмм для выполнения следующих операций с...

Вычисление корней квадратного уравнения
Допустим я хочу написать функцию для вычисления корней квадратного уравнения....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru