Интеграл в Matlab

#matlab

#matlab

Вопрос:

У меня есть 3 уравнения:

f = (exp(-x.^2)).*(log(x)).^2
g = exp(-x.^2)
h = (log(x)).^2

Интервал равен:

x = 0.05:10

Я могу правильно построить уравнения, но когда я пытаюсь найти интеграл, он говорит, что есть ошибка.

Код, который я использовал для нахождения интеграла, является:

integral(f,0,Inf)
integral(g,0,inf)
integral(h,0,10)

Интегралы для f и g равны от 0 до бесконечности, а интеграл для h равен от 0 до 10. Ни один из моих кодов для поиска интегралов не работает.

Ответ №1:

Вам нужно определить f, g, h как функции, подобные показанным ниже. Смотрите документацию integral(), она принимает функцию в качестве своего первого аргумента. Документация по интегралу Matlab

 x = 0.05:10
f = @(x) (exp(-x.^2)).*(log(x)).^2
g = @(x) exp(-x.^2)
h = @(x) (log(x)).^2
integral(f,0,Inf)  % 1.9475
integral(g,0,inf) % 0.8862
integral(h,0,10) % 26.9673
  
 h = @(x) (log(x)).^2
  

Этот синтаксис называется анонимными функциями, в основном это безымянные функции. В приведенном выше случае он принимает x в качестве входных данных и возвращает log (x) в квадрате.
Отныне h — это функция, и ее можно использовать следующим образом.

 h(1)  % will be equal 0
  

Для получения дополнительной информации об анонимных функциях обратитесь к руководству по анонимным функциям matlab:
Анонимные функции