我想在Matlab中象征性地计算这个集成:
syms z mu t k
f(z,mu) = exp(-(z-mu)^2);
a(t,k) = exp(-t/k);
int(f(z,mu)*a(t-z,k),z,[0,t])
但是Matlab无法评估结果。 Mathematica可以轻松计算出这个积分。我无法通过MatLink将Mathematica中的术语发送到Matlab,因此我决定在Matlab中完成所有工作。 有没有办法计算这个积分?我不想在数字上这样做,因为这比符号集成然后给它输入要慢。
给出的答案适用于上述示例,但它不适用于此示例:
syms z mu t k del
f(z,mu) = exp(-((z-mu)/del)^2);
a(t,k) = exp(-t/k);
int(f(z,mu)*a(t-z,k),z,[0,t])
我将指数函数(z-mu)
除以符号变量del
。
答案 0 :(得分:4)
首先简化表达式,然后运行
clear all
syms z mu t k
f(z,mu) = exp(-(z-mu)^2);
a(t,k) = exp(-t/k);
int(simplify(f(z,mu)*a(t-z,k)),z,[0,t])
和
-(pi^(1/2)*exp(-t/k)*exp(1/(4*k^2))*exp(mu/k)*
(erf(mu - t + 1/(2*k)) - erf(mu + 1/(2*k))))/2
Matlab 2015a,windows 7