#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:
Анонимные функции