Аватар для INZA
61 / 57 / 2
Регистрация: 18.11.2010
Сообщений: 499

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

15.11.2011, 12:06. Показов 5491. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru