Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
1

Численные методы. Решить нелинейное уравнение методом половинного деления

12.02.2014, 18:26. Просмотров 1597. Ответов 8
Метки нет (Все метки)


решение нелинейных уравнений. метод половинного деления. 2^x-3x-2=0

Добавлено через 5 часов 13 минут
с рисунками

Добавлено через 8 минут
т.е. графики
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 18:26
Ответы с готовыми решениями:

Уравнение методом половинного деления 1+Cos(x)/(3-Sin(x)-0.5)
Function f(x As Single) As Single f=1+Cos(x)/(3-Sin(x)-0.5) End Functioin Sub решениеуравнения()...

Решить уравнение методом деления отрезка пополам
Решить уравнение методом деления отрезка пополам. Каждый этап решения выводить в файл: sin(1-x)=x...

Решить уравнение методом деления отрезка пополам
уравнение arcsin(x)+x-1=0, с погрешностью Е=10^(-6) по математической части знаю, графическим...

Методом деления отрезка пополам решить уравнение
Задание на курсовую работу по информатике Вариант 8 Задание: Методом деления отрезка пополам...

8
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
14.02.2014, 12:54  [ТС] 2
помогите пожалуйста кто нибудь
0
Модератор
62900 / 46930 / 32344
Регистрация: 18.05.2008
Сообщений: 113,713
14.02.2014, 15:57 3
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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
uses graphABC;
const e=0.0001;
function F(x:real):real;
begin
F:=exp(ln(2)*x)-3*x-2;
end;
var k:array[1..20] of real;
    xn,xk,a,b,c,x,max,min,mx,my,dx,y1:real;
    x0,y0,n,i:integer;
    s:string;
begin
xn:=-5;xk:=5;{интервал по Х}
n:=0;
a:=xn-0.1;
b:=a+0.5;
repeat
//выделяем интервалы корней через 0.5
if F(a)*F(b)<0 then
 begin
  //если есть пересечение оси Х=корень
  //уточняем его методом бисекции(половинного деления)
  repeat
  c:=(a+b)/2;
  if F(a)*F(c)<=0 then b:=c
  else a:=c;
  until (b-a)<e;
  n:=n+1;
  k[n]:=(a+b)/2;
 end ;
a:=b;
b:=a+0.5;
until a>xk;
{найдем максимум и минимум для масштаба по У}
x:=xn;
max:=F(xn);
min:=F(xn);
while x<=xk+0.1 do
 begin
  if F(x)>max then max:=F(x);
  if F(x)<min then min:=F(x);
  x:=x+0.1;
 end;
x0:=windowwidth div 2;
mx:=(x0-30)/xk;{масштаб по Х}
y0:=windowheight div 2;
if max>abs(min) then my:=(y0-20)/max{по У}
else my:=(y0-20)/-min;
line(0,y0,windowwidth,y0);{оси}
line(x0,0,X0,windowheight);
for i:=1 to round(max) do{максимальное количество засечек в одну сторону}
 begin
  line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));{засечки на оси У}
  line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
  {подпись оси У}
  str(i,s);
  if i mod 2=0 then
   begin
    textout(x0-35,y0-round(i*my),s);{соответственно засечкам}
    textout(x0-35,y0+round(i*my),'-'+s);
   end;
  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);
  {подпись оси Х}
   textout(x0+round(i*mx),y0+10,s);
   textout(x0-round(i*mx),y0+10,'-'+s);
 end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-10,y0-10,'X');
textout(x0+5,10, 'Y');
{график}
x:=xn;
dx:=0.001;
while x<=xk do
 begin
  setpixel(x0+round(x*mx),y0-round(F(x)*my),clBlue);
  x:=x+dx;
 end;
setpencolor(14);
setfontsize(11);
setfontcolor(clRed);
for i:=1 to n do
 begin
  setbrushcolor(clRed);
  circle(x0+round(k[i]*mx),y0-round(F(k[i])*my),4);
  str(k[i]:0:4,s);
  setbrushstyle(bsClear);
  textout(x0+round(k[i]*mx)-20,y0+10,s);
 end;
{название}
textout(50,20,'График функции y=2^x-3x-2');
textout(80,40,'на интервале [-5;5]');
end.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
15.02.2014, 10:51  [ТС] 4
спасибо большое. а проще ни как нельзя сделать?
0
Модератор
62900 / 46930 / 32344
Регистрация: 18.05.2008
Сообщений: 113,713
15.02.2014, 11:00 5
Предлагайте что упростить.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
15.02.2014, 11:12  [ТС] 6
ну я сама не знаю что можно здесь упрастить. ну че то мне кажется слишком ного написано. и там нужно вроде 3 графика
0
Модератор
62900 / 46930 / 32344
Регистрация: 18.05.2008
Сообщений: 113,713
15.02.2014, 11:21 7
Зачем 3 графика? Что на них рисовать? Просто рисуем график функции на интервале где есть корни, интервал выбираем исследованием функции до написания программы (я это делал в Экселе).
Разбиваем весь интервал на кусочки длиной 0,5. Если в этом кусочке есть пересечение графика с осью Х, то уточняем методом бисекции корень на этом интервале. Потом, когда найдем все корни, покажем на графике точки пересечения графика с осью Х=корни и подпишем их значения.
Все по моему просто. Если не нравится, пишите сами, или создайте новую тему, может еще кто-то напишет по другому, но мало вероятно. Можно еще обратиться в платный раздел Заказать программу и там за свои денюжки изгаляться над исполнителем.

Добавлено через 1 минуту
А если ваши познания такие же как написание задания, то говорить вообще не о чем. Я писал программу на уровне телепата.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
15.02.2014, 11:33  [ТС] 8
извените. спасибо.
0
Модератор
62900 / 46930 / 32344
Регистрация: 18.05.2008
Сообщений: 113,713
15.02.2014, 11:36 9
извените следует писать извините
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2014, 11:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Решить уравнение методом половинного деления
Ребят помогите пожалуйста написать программу на паскале, я уже не знаю как все перепробовал(...

Методом половинного деления решить уравнение с заданной точностью
методом половинного деления решить уравнение с заданной точностью е (вводится с клавиатуры) на...

Методом половинного деления решить уравнение с заданной точностью "Е".
Методом половинного деления решить уравнение с заданной точностью &quot;Е&quot;. X*X - cos(x)=0; (Значение...

Решить уравнение методом деления отрезка пополам и Ньютона
Решить уравнение x*tan(x)=A, 0&lt;x&lt;pi/2 методом деления отрезка пополам и Ньютона. Входные...


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

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

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