Форум программистов, компьютерный форум, киберфорум
Wolfram Mathematica
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 27.05.2012
Сообщений: 39

Нарисовать совмещенный график

13.12.2013, 23:55. Показов 1847. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В курсовом проекте небольшое задание в математике нужно сделать. А я ею никогда не пользовался. Задание в том, что есть точное значение интеграла, а есть полученные с помощью формул Ньюютона-Котеса. Нужно нарисовать 4 графика на 1, где 1- точное решение, а 3 другие построены по формуле прямоугольников, Симпсона и трапеций. Нашел код, но в нем чего-то не хватает. Помогите, пожайлуста, дописать, чтобы работало.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
RectangleRule[f_, {x_, a_, b_}, n_Integer: 1] := 
 Module[{h = (b - 1)/n},
  (Plus @@ Function[x, f] /@ (a + h Range[1/2, n - 1/2, 1])) h]
 
TrapezeRule[f_, {x_, a_, b_}, n_Integer: 1] := Module[{h = (b - a)/n},
  (Function[x, f][a] + 
     2 Plus @@ Function[x, f] /@ (a + h Range[1, n - 1, 1]) + 
     Function[x, f][b]) h/2]
 
SimpsonsRule[f_, {x_, a_, b_}, n_Integer: 2] := Module[{h = (b - a)/n},
  (Function[x, f][a] +
     4 Plus @@ Function[x, f] /@ (a + h Range[1, n - 1, 2]) +
     2 Plus @@ Function[x, f] /@ (a + h Range[2, n - 2, 2]) +
     Function[x, f][b]) h/3]
 
ListLinePlot[{Table[Integrate[func[x], {x, l, k}], {n, 1, 20, 2}],
  Table[RectangleRule[func[x], {x, l, k}, n], {n, 1, 20, 2}],
  Table[TrapezeRule[func[x], {x, l, k}, n], {n, 1, 20, 2}],
  Table[SimpsonRule[func[x], {x, l, k}, n], {n, 1, 20, 2}]},
 AxesLabel -> {"n", "f(x)"}]
Добавлено через 2 часа 11 минут
Вот, нашёл полность код вроде, но там деление на 0. Но что и как не понимаю, ибо синтаксис тут какой-то странный: то func_ то func, то x, то х_
Matlab M
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
func[x_] = Input["Введите функцию:f[x]="];
l = Input["Введите a:"];
k = Input["Введите b:"];
eps = Input["Введите точность:"];
u = Integrate[func[t], {t, l, k}];
stepr = diff2max[func_, l_, k_] = 
   Maximize[ Abs[D[func[x], {x, 2}]], l <= x <= k, x];
steps = diff4max[func_, l_, k_] = 
   Maximize[Abs[D[func[x], {x, 4}]], l <= x <= k, x];
stepRectangle[func_, l_, k_, eps_] = 
  Sqrt[(((k - l)^3)*stepr[[1]])/(24*eps)];
stepSimpson[func_, l_, k_, eps_] = 
  Power[(((k - l)^5)*steps[[1]])/(180*eps), 1/4];
stepTrapeze[func_, l_, k_, eps_] = 
  Sqrt[(((k - l)^3)*stepr[[1]])/(12*eps)];
steprectangle = 
  IntegerPart[
   stepRectangle[func[x], l, k, eps]];(*n для ф-лы прямоугольника*)
stepsimpson = 
  IntegerPart[stepSimpson[func[x], l, k, eps]];(*n для ф-лы Симпсона*)
 
 
steptrapeze = 
  IntegerPart[stepTrapeze[func[x], l, k, eps]];(*n для ф-лы Трапеции*)
 
 
j = (k - l)/stepsimpson;(*шаг для ф-лы симпсона*)
j1 = (k - l)/steprectangle;(*шаг для ф-лы прямоугольника*)
j2 = (k - l)/steptrapeze;(*шаг для ф-лы трапеций*)
posl = Table[
   l + j*i, {i, 0, 
    stepsimpson}];(*разбиение отрезка для ф-лы симпсона*)
posl1 = Table[
   l + j1*i, {i, 0, 
    steprectangle}];(*разбиение отрезка для ф-лы прямоугольников*)
posl2 = Table[
   l + j2*i, {i, 0, 
    steptrapeze}];(*разбиение отрезка для ф-лы трапеций*)
res = 0;(*результат ф-лы Симпсона*)
res1 = 0;(*результат ф-лы прямоугольников*)
res2 = 0;(*результат ф-лы трапеций*)
For[i = 1, i < steptrapeze, i++,
  res2 += ((posl2[[i + 1]] - posl2[[i]])/2)*(func[posl2[[i]]] + 
      func[posl2[[i + 1]]])];
For[i = 1, i < steprectangle, i++,
  res1 += (posl1[[i + 1]] - 
      posl1[[i]])*(func[(posl1[[i]] + posl1[[i + 1]])/2])];
For[i = 1, i < stepsimpson + 1, i++, 
  res += ((posl[[i + 1]] - posl[[i]])/
      6)*(4*func[(posl[[i]] + posl[[i + 1]])/2] + func[posl[[i]]] + 
      func[posl[[i + 1]]])];
Print["Результат"]
Print[u]
Print["Ф-ла Симпсона"]
Print[N[res]]
Print["Ф-ла прямоугольников"]
Print[N[res1]]
Print["Ф-ла трапеций"]
Print[N[res2]]
RectangleRule[f_, {x_, a_, b_}, n_Integer: 1] := 
 Module[{h = (b - a)/n},
  (Plus @@ Function[x, f] /@ (a + h Range[1/2, n - 1/2, 1])) h
  ]
 
TrapezeRule[f_, {x_, a_, b_}, n_Integer: 1] := Module[{h = (b - a)/n},
  (Function[x, f][a] +
     2 Plus @@ Function[x, f] /@ (a + h Range[1, n - 1, 1]) +
     Function[x, f][b]) h/2
  ]
 
SimpsonsRule[f_, {x_, a_, b_}, n_Integer: 2] := Module[{h = (b - a)/n},
  (Function[x, f][a] +
     4 Plus @@ Function[x, f] /@ (a + h Range[1, n - 1, 2]) +
     2 Plus @@ Function[x, f] /@ (a + h Range[2, n - 2, 2]) +
     Function[x, f][b]) h/3
  ]
ListLinePlot[{Table[Integrate[func[x], {x, l, k}], {n, 1, 20, 2}],
  Table[RectangleRule[func[x], {x, l, k}, n], {n, 1, 20, 2}],
  Table[TrapezeRule[func[x], {x, l, k}, n], {n, 1, 20, 2}],
   Table[SimpsonsRule[func[x], {x, l, k}, n], {n, 2, 20, 2}]},
 AxesLabel -> {"n", "f(x)"}]
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2013, 23:55
Ответы с готовыми решениями:

Нарисовать флаг, нарисовать график y=ctg x Нарисовать анимацию
Дело таково у меня сейчас практика, где я очень не успиваю сделать все свои задания... Большая просьба кто готов помочь, пишите а кто...

Микрофон наушников и совмещённый разъём
Asus x551m - никаким образом не хочет работать микрофон в наушниках. Прочёл уже массу статей по этому поводу, но результатов нет. Такое...

Реализовать совмещенный патерн Factory Method и Сomposite
Помогите реализовать совмещенный патерн Factory Method и Сomposite.Вот их примеры отдельно ...

2
617 / 242 / 16
Регистрация: 31.07.2013
Сообщений: 376
15.12.2013, 16:52
Код сильно перегружен лишними вставками, не несущими никакой функциональной нагрузки, и содержит фрагменты, которые в некоторых случаях могут приводить к возникновению ошибок. Судя по всему, сам код собирался из каких-то заготовок или просто был не полностью отлажен.

Что именно должен делать код? Здесь сначала идёт не до конца реализованная попытка определить число точек разбиения для каждого из методов на основе заданной точности, а затем ещё раз отдельно рассчитываются значения десяти интегральных сумм для каждого метода и на основании этих десяти сумм строится график. Если нужен только сам график, то второй части достаточно. Или результат должен быть примерно таким:



Если есть желание, можно подробно разобрать код – он не так уж и сложен, только уточните, что именно предполагается в результате получить.
0
0 / 0 / 1
Регистрация: 27.05.2012
Сообщений: 39
15.12.2013, 19:18  [ТС]
Спасибо, уже сам разобрался))) Просто нужно было смириться с тем, что это нужно сделать и в течении 40 минут все получилось)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2013, 19:18
Помогаю со студенческими работами здесь

USART на ATMega. Совмещённый регистр UBRRH\UCSRC
Всем привет! Господа, такой вопрос. Решил поработать с USORTом на ATMiko8, код пишу на C++ в IARe 6.11. Сложность возникла в самом начале,...

Нарисовать график
Итак, имеется программа в Borland C++. Задача этой программы создавать рандомные функции. Мне нужно одновременно с генерированием этой...

Нарисовать график
Мне нужно нарисовать график определенной функции на интервале. Оси я нарисовал еле как, а вот как сам график я вообще не понимаю, помогите...

нарисовать график
дано три массива чиссел которые обозначають длину в мм. x:={0;1,87;3,75;7,5;15;30;45;60;75;90;105;120;135;150} ...

Нарисовать график
Ребят, помогите нарисовать график, дали в институте на самообучение , программа замудренная, как не рисовал, выходит немного не то, может...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru