Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
1

Вычислить приближенно определенный интеграл по формуле трапеций

24.12.2014, 09:33. Просмотров 2030. Ответов 19
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста написать программу следующий задачу по методу трапеция на MATLAB.

Вычислить приближенно определенный интеграл по формуле трапеций.

https://www.cyberforum.ru/cgi-bin/latex.cgi?I=\int_{2}^{5}\dfrac{dx}{\ln(x)}.

Разбив отрезок интегрирования на 3 части.

https://www.cyberforum.ru/cgi-bin/latex.cgi?h=\dfrac{(b-a)}{n}=\dfrac{5-2}{3}=1;

Для расчетов можно использовать обычный микрокалькулятор:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{align*}& f(x_{0})=f(2)=\dfrac{1}{\ln(2)}\approx 1.443;\\& f(x_{1})=f(3)=\dfrac{1}{\ln(3)}\approx 0.910;\\& f(x_{2})=f(4)=\dfrac{1}{\ln(4)}\approx 0.721;\\& f(x_{3})=f(5)=\dfrac{1}{\ln(5)}\approx 0.621.\\\end{align*}

Окончательно:

https://www.cyberforum.ru/cgi-bin/latex.cgi?I_{3}=\int_{2}^{5}\dfrac{dx}{\ln(x)}\approx 1\cdot \left[\dfrac{f(x_{0})+f(x_3)}{2}+f(x_{1})+f(x_{2})\right]=\dfrac{1.443+0.621}{2}+0.910+0.721=2.664

Добавлено через 8 минут
Matlab M
1
2
3
4
5
6
format bank
x=2:1:5;
y=1./(log(x));
I=trapz(x,y)
I =
          2.66
Что обозначает тут trapz(x,y)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2014, 09:33
Ответы с готовыми решениями:

Вычислить интеграл методами прямоугольников,трапеций и Симпсона
Помогите пожалуйста. Нало сделать в Matlab

Вычислить определенный интеграл
необходимо вычислить интергал: (cos(2x)+(sin(x))^2)/(sin(3x)) от pi/7 до pi/4 я делаю так: dx =...

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

Вычислить определенный интеграл методом трапеции
f(x)=f(x)=(x^3)+(x^2)+x+1 интервал

Вычислить определенный интеграл методом Монте-Карло
Вычислить определенный интеграл методом Монте-Карло функция f(x)=(x^3)+(x^2)+x+1

19
VSI
Модератор
Эксперт по математике/физике
4281 / 3316 / 1084
Регистрация: 30.07.2012
Сообщений: 9,391
24.12.2014, 09:43 2
Цитата Сообщение от Maikl2020 Посмотреть сообщение
Что обозначает тут trapz(x,y)
Почитайте ЗДЕСЬ...
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 09:47  [ТС] 3
По методу Симпсон где я ошибку сделал?
Matlab M
1
2
3
4
5
6
7
8
9
10
 a=2; b=5; % 
syms x; % 
f=1./(log(x))% функсия
%In=int(f) % интеграл
Io=int(f,a,b) % интеграл
I=double(Io) % 
% График
fplot('f',[a,b])% 
title('y=f(x)'), grid on
xlabel('x'), ylabel('y')
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 14:17  [ТС] 4
Здравствуйте, помогите пожалуйста написать программу следующий задачу по методу Симпсон на MATLAB.

Я хочу по методу Симпсон решит на Matlab поскольку я решил этого задача по методу трапеция.
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 15:15 5
Maikl2020, я думаю, что тебе нужно не trapz и int использовать, а вручную делать, как здесь: Численное интегрирование
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 16:42  [ТС] 6
Зосима, Мне не надо проста решит интеграл хочу решет следующий интеграл методом Симпсон.
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 16:57 7
Maikl2020, смотри тему, ссылку на которую я оставил
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 17:05  [ТС] 8
Зосима,
Matlab M
1
2
3
4
5
6
% метод Симпсона
H(1:2:n) = 2*h/3; % четные элементы
H(2:2:n) = 4*h/3; % нечетные элементы
H([1, n]) = h/3; % крайние элементы
s5 = sum( H.*f(x) );
d5 = abs(s5-A)
на моем задача как получается у меня нету sum, и еще объясните пожалуйста все элементы.
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 17:10 9
У тебя с 4мя точками будет:

https://www.cyberforum.ru/cgi-bin/latex.cgi?I_{3}= \frac{h}{3}f(x_0) + \frac{2h}{3}f(x_1) + \frac{4h}{3}f(x_2) + \frac{h}{3}f(x_3)

у первого и последнего значений ф-ции множитель: h/3, у четных: 2h/3, у нечетных: 4h/3
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 17:14  [ТС] 10
Зосима, Пожалуйста помогите написать программу а путаю. очень прошу.
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 17:22 11
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear, clc
f = @(x) 1./log(x)
a = 2;
b = 5;
n = 3;
h = (b-a)/n;
x = a:h:b;
 
I = 0;
for i = 1:length(x)
  if (i==1)|(i==length(x)) % если элемент первый или последний
    a = h/3; % множитель
  elseif mod(i,2)==0 % если четный
    a = 2*h/3;
  elseif mod(i,2)~=0 % если нечетный
    a = 4*h/3;
  end
  I = I + a*f(x(i));
end
I
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 17:33  [ТС] 12
Зосима, Спасибо большой, но Вы думайте, что ответы методы трапеция и Симпсон разница так много да Потому что методом Трапеция решили ответ получился I=2.664;
Потому что методом Симпсон решили ответ получился I=2.2566;

И еще по этой блок схема можно написать программы, поможете пожалуйста
0
Миниатюры
Вычислить приближенно определенный интеграл по формуле трапеций  
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 17:34  [ТС] 13
Еще
Цитата Сообщение от Зосима Посмотреть сообщение
1:length(x)
что обозначает?
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 17:59 14
Лучший ответ Сообщение было отмечено Maikl2020 как решение

Решение

эх, морочишь ты... голову
(все четко по блок-схеме)
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
clear, clc
f = @(x) 1./log(x)
a = 2;
b = 5;
n = 4; % четное!
h = (b-a)/n;
x = a;
F = f(x);
S = F;
while 1 % бесконечный цикл, выходить будет потом
    x = x + h;
    F = f(x);
    S = S + 4*F;
    i = i+2;
    if i>=n
        break % выходим из цикла
    else
        x = x+h;
        F = f(x);
        S = S+2*F;
    end
end
x = b;
F = f(x);
S = (S+F)*h/3;
S
Цитата Сообщение от Maikl2020 Посмотреть сообщение
1:length(x)
что обозначает?
массив чисел от 1 до длины х. стыдно такое спрашивать
1
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 18:18  [ТС] 15
Зосима, Спасибо, за то что ты поможешь меня!

Но, я одно не понимаю, почему результат, методов разное ?

Еще извините, пожалуйста а если шаг (ну например h=0.001) задано тогда как можно решит?
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 18:53 16
разница изза того, что методы приближенные!
лучше не шаг меняй, а кол-во интервалов. поставь n=1000 и разница будет гораздо меньше
0
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 19:09  [ТС] 17
Зосима, Это не правильно да?
Matlab M
1
2
3
4
5
6
7
8
9
10
a=2; b=5; % 
syms x; % 
f=1./(log(x))% функсия
%In=int(f) % интеграл
Io=int(f,a,b) % интеграл
I=double(Io) % 
% График
fplot('f',[a,b])% 
title('y=f(x)'), grid on
xlabel('x'), ylabel('y')
Я хотел спросить, если h=0.001 программа как выглядит?
0
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
24.12.2014, 20:32 18
Лучший ответ Сообщение было отмечено Maikl2020 как решение

Решение

Цитата Сообщение от Maikl2020 Посмотреть сообщение
Это не правильно да?
почему, правильно, но проще так:
Matlab M
1
2
3
4
5
6
7
a=2; b=5; % 
f = @(x)1./(log(x)) % функсия
I = quad(f,a,b) % интеграл
% График
fplot(f,[a,b])% 
title('y=f(x)'), grid on
xlabel('x'), ylabel('y')
Цитата Сообщение от Maikl2020 Посмотреть сообщение
если h=0.001 программа как выглядит?
если задается не n, а h, то начало такое:
Matlab M
1
2
3
4
5
6
7
clear, clc
f = @(x) 1./log(x)
a = 2;
b = 5;
h = 0.001; 
n = (b-a)/h;
%и т.д.
1
Maikl2020
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,307
24.12.2014, 21:29  [ТС] 19
Зосима, Спасибо еще один пожалуйста

На этом коде рисует график
Matlab M
1
2
3
4
5
6
7
8
9
10
11
>> clear, clc
f = @(x) sqrt(1+2.*x.^2-x.^3)
a =1.2;
b =2;
n =8; 
h = (b-a)/n;
I = quad(f,a,b) % интеграл
% График
fplot(f,[a,b])% 
title('y=f(x)'), grid on
xlabel('x'), ylabel('y')

А на этом коде как нарисовать график?
Кликните здесь для просмотра всего текста
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
clear, clc
a =1.2;
b = 2;
n = 8; % 
h = (b-a)/n;
x = a;
F = sqrt(1+2.*x.^2-x.^3);
S = F;
while 1 % 
    x = x + h;
    F =sqrt(1+2.*x.^2-x.^3);
    S = S + 4*F;
    i = i+2;
    if i>=n
        break % 
    else
        x = x+h;
        F = sqrt(1+2.*x.^2-x.^3);
        S = S+2*F;
    end
end
x = b;
F = sqrt(1+2.*x.^2-x.^3);
S = (S+F)*h/3;
S
0
Миниатюры
Вычислить приближенно определенный интеграл по формуле трапеций  
Зосима
5042 / 3391 / 340
Регистрация: 02.04.2012
Сообщений: 6,313
Записей в блоге: 16
Завершенные тесты: 1
25.12.2014, 16:02 20
Лучший ответ Сообщение было отмечено Maikl2020 как решение

Решение

Maikl2020, ezplot('sqrt(1+2.*x.^2-x.^3)',a,b)
1
25.12.2014, 16:02
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2014, 16:02

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

Вычислить определенный интеграл методом средних прямоугольников
Здравствуйте! Помогите разобраться с методом средних прямоугольников. Нужно вычислить эту формулу...

Вычислить определенный интеграл, построить график подынтегральной функции
Здравствуйте,я решил задачу,но мне нужно сделать ее без использования символьных переменных syms x....

По формуле Гаусса при n = 3 вычислить интеграл
на matlabe По формуле Гаусса при n = 3 вычислить интеграл


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

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

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