Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499

Комбинированный метод хорд и касательных и график

15.11.2011, 12:06. Показов 5478. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решить уравнение и сделать график X*X*X*X+X*X*X-10*X*X-34*X-26 методом хорд и касательных с точностью 0,00001.Как к программе добавить график?
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
program metod;
uses crt;
function f(var x:real):real;
begin
f:= X*X*X*X+X*X*X-10*X*X-34*X-26;
end;
function f1(var x:real):real;
begin
f1:= 4*x*x*x+3*x*x-20*x-34; {первая производная}
end;
function f2(var x:real):real;{вторая производная}
begin
f2:= 12*x*x+6*x-20;
end;
var
a,b:real;
e,e1:real;
x0,tmp:real;
x11,x12:real;
z,x6,y:real;
begin
clrscr;
a:=-10;
b:=10;
e:=0.00001;
x0:=a;
if f(a)*f(b)>0 then writeln('a or b is incorrect')
else
 begin
  x11:=x0-f(x0)/f1(x0);
  x12:=a-((b-a)*f(a)/(f(b)-f(a)));
  e1:=(x11+x12)/2;
  while  abs(e1-x11)>e do
    begin
     a:=x11;
     b:=x12;
     x11:= a-F(a)/f1(a);
     x12:= a-((b-a)*f(a)/(f(b)-f(a)));
     e1:=(x11+x12)/2;
    end;
  writeln ('koren: ',x11:6:4);
 end;
readln;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2011, 12:06
Ответы с готовыми решениями:

Комбинированный метод хорд и касательных
Дана задача - написать программу, которая вычисляет значения корней функции, используя комбинированный метод хорд и касательных. Прошу...

Комбинированный метод хорд и касательных уравнения третьей степени
Разработать программу для решения комбинированным методом хорд и касательных уравнения третьей степени, вычислив корни с точностью до 0,01:...

метод хорд и касательных
Написать программу находящую указанным методом абсциссы точек пересечения 3х функций. f1 := 3*(0.5/(x+1)+1) f2 := 2.5*x-9.5; f3 := 5/x;...

33
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
11.12.2011, 22:27  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Puporev Посмотреть сообщение
И в чем проблема? Все программы, написанные в Турбо у меня запускаются во Фрее, ингда модуль Crt приходится менять на WinCrt.
Эта программа сто пудов запускается во Фрее.
Решение системы уравнений методом Гаусса-Жорданавот эта например не хочет в Free запускаться
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.12.2011, 23:07
Потому что там бардак в программе.
Для начала убери вообще название
program labI4(input,output);
или хотя бы (input,output)
0
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
12.12.2011, 15:16  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Потому что там бардак в программе.
Для начала убери вообще название
program labI4(input,output);
или хотя бы (input,output)
убрал с самого начала но как я понял там проблема в другом
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.12.2011, 15:29
Но у меня-то запускается во Фрее, правда не работает, но это косяки самого кода.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.12.2011, 15:32
Цитата Сообщение от INZA Посмотреть сообщение
а как быть тогда?
Задавать в качестве начального приближения только отрезок ровно с одним корнем, не являющимся одновременно экстремумом, на концах такого интервала всегда разные знаки.
0
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
12.12.2011, 16:57  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Задавать в качестве начального приближения только отрезок ровно с одним корнем, не являющимся одновременно экстремумом, на концах такого интервала всегда разные знаки.
не понял
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.12.2011, 17:05
Цитата Сообщение от INZA Посмотреть сообщение
не понял
Если ты не понимаешь ни только сам метод, но даже основ предметной области, то как ты его реализовал? Тебе рано даже юзить такие проги, не то что писать, сходи сначала в школу.
0
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
12.12.2011, 17:58  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Если ты не понимаешь ни только сам метод, но даже основ предметной области, то как ты его реализовал? .
когда я писал что не понял это не значит что я ВСЁ не понял! И прежде чем что то писать надо вопрос читать на первой странице и подумать что мне даст такой ОДИН корень!!!А по существу график не запускается у меня только на ноуте, на ПК всё норм работает.

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Тебе рано даже юзить такие проги, не то что писать, сходи сначала в школу.
тогда тебе сюда
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.12.2011, 18:07
Цитата Сообщение от INZA Посмотреть сообщение
И прежде чем что то писать надо вопрос читать на первой странице и подумать что мне даст такой ОДИН корень
Ну я и говорю:
Цитата Сообщение от taras atavin Посмотреть сообщение
Тебе рано даже юзить такие проги, не то что писать, сходи сначала в школу.
. Предпосылки методов в единственности корня и не совпадении его с экстремумом. Если хоть одна из них нарушена - уравнение не решаемо численными методами на данном интервале. Мало того, это основа самой постановки. Задача для численного уравнения: в качестве начального приближения дана окрестность одного корня уравнения вида f(x)=0, известно, что он не совпадает с экстремумом функции в левой части уравнения, требуется найти этот корень, используя подпрограмму оценки функции по аргументу.
Цитата Сообщение от INZA Посмотреть сообщение
когда я писал что не понял это не значит что я ВСЁ не понял!
А что здесь можно понять частично? Какая часть здесь вообще есть? Дошкольникам же рано браться за подобные проги даже в роли пользователя, тем более разработчика.
0
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
12.12.2011, 18:13  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Предпосылки методов в единственности корня и не совпадении его с экстремумом. Если хоть одна из них нарушена - уравнение не решаемо численными методами на данном интервале. Мало того, это основа самой постановки. Задача для численного уравнения: в качестве начального приближения дана окрестность одного корня уравнения вида f(x)=0, известно, что он не совпадает с экстремумом функции в левой части уравнения, требуется найти этот корень, используя подпрограмму оценки функции по аргументу.
а почему нельзя было сразу так написать а не пытаться сначало проявить свою грамотность ?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.12.2011, 18:20
Ну ты же привёл исходник самой проги? Вот мне и стало интресно, как же ты её написал. К графику, кстати, единственность корня, ни какого отношения не имеет, как и вообще корни. Просто гонишь цикл и строишь по точкам, даже если корней нет. Но раз задачи оказались вместе, то нужен не столько график, сколько иллюстрация поиска корня, то есть сначала строишь график, а потом к нему пририсовываешь все свои хорды с касательными.
0
 Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499
12.12.2011, 18:26  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну ты же привёл исходник самой проги? Вот мне и стало интресно, как же ты её написал. К графику, кстати, единственность корня, ни какого отношения не имеет, как и вообще корни. Просто гонишь цикл и строишь по точкам, даже если корней нет. Но раз задачи оказались вместе, то нужен не столько график, сколько иллюстрация поиска корня, то есть сначала строишь график, а потом к нему пририсовываешь все свои хорды с касательными.
Интересно сейчас попробую
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.12.2011, 18:39
Кстати, не представляю себе, как можно скомбинировать два метода, а интервальная форма окрестности обычно даётся в методе бисекций. Следующий исходник решает твою задачу этим методом на билдере:
C++
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
/*Выше опиши тип func указателя на твою функию*/
double abs(double x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x;
}
double bisec(double a, double b, double e, TBitmap *i, double scale, func f)
{
 int x0=i->Width /2, y0=i->Height/2;
 double c=(a+b)/2;
 double step=1.0/scale;
 if (abs(b-a)>6*step)
 {
  i->Canvas->MoveTo(x0+a*scale,y0);
  i->Canvas->MoveTo(x0+a*scale,y0-f(a)*scale);
  i->Canvas->MoveTo(x0+c*scale,y0);
  i->Canvas->MoveTo(x0+c*scale,y0-f(c)*scale);
  i->Canvas->MoveTo(x0+b*scale,y0);
  i->Canvas->MoveTo(x0+b*scale,y0-f(b)*scale);
 }
 if (abs(b-a)<eps/2.0)
 {
  return c;
 }
 if (f(a)*f(c)<0.0)
 {
  return bisec(a,c,e,i,scale,f);
 }
 return bisec(c,b,e,i,scale,f);
}
void proc(double a, double b, double e, TBitmap *i, double scale, func f);
double step=1.0/scale;
double x,y;
int x0=i->Width /2, y0=i->Height/2;
i->Canvas->MoveTo(x0, 0);
i->Canvas->LineTo(x0, i->Height-1);
i->Canvas->MoveTo(0, y0);
i->Canvas->LineTo(i->Width-1, y0);
y=f(a);
i->Canvas->MoveTo(x0+(a*scale), y0-(y*scale));
for (x=a+step; x<=b; x+=step)
{
 y=f(x);
 i->Canvas->LineTo(x0+(a*scale), y0-(y*scale));
}
bisec(a,b,e,i, scale, f);
Проверка предпосылок не выполняется.
0
1 / 1 / 1
Регистрация: 02.10.2011
Сообщений: 81
17.12.2011, 18:40
Цитата Сообщение от Puporev Посмотреть сообщение
С графиком.
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
103
104
105
106
107
uses crt,graph;
function f(var x:real):real;
begin
f:= X*X*X*X+X*X*X-10*X*X-34*X-26;
end;
function f1(var x:real):real;
begin
f1:= 4*x*x*x+3*x*x-20*x-34; {первая производная}
end;
function f2(var x:real):real;{вторая производная*}
begin
f2:= 12*x*x+6*x-20;
end;
function Komp(a,b,e:real):real;
var x0,e1,tmp:real;
    x11,x12:real;
    z,x6,y:real;
begin
x0:=a;
x11:=x0-f(x0)/f1(x0);
x12:=a-((b-a)*f(a)/(f(b)-f(a)));
e1:=(x11+x12)/2;
while  abs(e1-x11)>e do
 begin
  a:=x11;
  b:=x12;
  x11:= a-F(a)/f1(a);
  x12:= a-((b-a)*f(a)/(f(b)-f(a)));
  e1:=(x11+x12)/2;
 end;
Komp:=x11;
end;
var a,b,x,x1,x2,e:real;{границы интервала, значение корня, точность}
    i:integer;{счетчик циклов}
    gd,gm,x0,y0,xi,yi:integer;{переменные для работы в граф. режиме}
    min,max:real;{мин и макс для оси Y}
    mx,my:real;{массшатабы для перевода реальных координат в экранные}
    s:string[10];{строка для перевода чисел в текст для вывода на экран в граф. режиме}
begin
clrscr;
writeln('Nahozdenie kornej functii F(x)=x^4+x^3-10x^2-26');
writeln('Graphicheski opredeleny intervaly (-2;0), (3;5)');
e:=0.00001;
x1:=Komp(-2,0,e);
x2:=Komp(3,5,e);
writeln('Korni x1=',x1:0:6,'  x2=',x2:0:6);
readln;
gd:=0;
initgraph(gd,gm,'');{переходим в графический режим}
a:=-5;{интервал построения графика}
b:=5;
x0:=getmaxX div 2;{0 по Х и масштаб по Х}
mx:=(x0-30)/b;
x:=a;
max:=F(a);
min:=F(a);
while x<=b do
 begin
  if F(x)>max then max:=F(x);
  if F(x)<min then min:=F(x);
  x:=x+0.25;
 end;
y0:=round(getmaxY*max/(max-min));{0 по Y и масштаб по Y}
my:=(y0-20)/max;
{ось Х}
line(0,y0,getmaxX,y0);
outtextXY(getmaxX-10,y0-15,'X');
for i:=1 to round(b) do
 begin
  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;
{ось У}
line(x0,5,x0,getmaxY-5);
outtextXY(x0-20,5,'Y');
for i:=1 to round(b) do
 begin
  line(x0+3,y0-round(i*my*100),x0-3,y0-round(i*my*100));
  str(i*100,s);
  outtextXY(x0-10,y0-round(i*my*100),s);
  line(x0+3,y0+round(i*my*100),x0-3,y0+round(i*my*100));
  outtextXY(x0-20,y0+round(i*my*100),'-'+s);
 end;
{подписи значений корней}
settextstyle(0,1,1);
setcolor(11);
str(x1:0:6,s);
outtextXY(x0+round(x1*mx),y0-90,s);
str(x2:0:6,s);
outtextXY(x0+round(x2*mx),y0-90,s);
setlinestyle(0,1,3);
circle(x0+round(x1*mx),y0,2);
circle(x0+round(x2*mx),y0,2);
{построение графика}
x:=a;
while x<=b do
 begin
  xi:=x0+round(x*mx);
  yi:=y0-round(F(x)*my);
  putpixel(xi,yi,12);
  x:=x+0.001;
 end;
readln
end.
а как сделать для этой проги ещё 2 графика: зависимость Х от базовой погрешности и зависимость количество итераций от базовой погрешности?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2011, 18:40

Комбинированный метод хорд и касательных
Друзья, добрый вечер, не могли бы Вы помочь? Есть этот код, с помощью него нужно чтобы при заданном интервале выдавало ответ. Мой...

Комбинированный метод хорд и касательных
Сдравствуйте господа программисты. Помогите решить задачу. Нужно написать программу на Си, которая решает уравнение комбинированным...

Комбинированный метод хорд и касательных
Добрый вечер! Знаю, что эта задачка уже, наверное, надоела, но все же может кто поможет!! Нужно написать программу, которая ищет корни...

Комбинированный метод (хорд и касательных)
Помогите написать программу для нахождения корня нелинейного уравнения с точностью 10^-6 комбинированным методом. Уравнение:...

Комбинированный метод хорд и касательных.
Помогите найти ошибку!!! Считает только 1 раз, не могу понять почему условие не срабатывает #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Video: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru