在Matlab中评估函数

时间:2014-01-05 22:23:25

标签: matlab

我试图在Matlab中评估t = 1中的函数。 如何获得以下代码的答案?

result = dsolve('D2y-23*Dy+22*y=sin(t)','y(0)=0','Dy(0)=0');
disp(result);
disp(fnval(result, 1));

第一个答案是:exp(22*t)/10185 + (23*cos(t))/970 - exp(t)/42 + (21*sin(t))/970

但是当我试图在t = 1点找到函数的评估时,progrem会抛出一些异常。也许'fnval'功能不适合这里。

1 个答案:

答案 0 :(得分:3)

您可以使用subs

result = dsolve('D2y-23*Dy+22*y=sin(t)','y(0)=0','Dy(0)=0');
t = 1;
subs(result)

ans =   
  3.5198e+005

您也可以使用eval执行此操作,这与您的初始方法类似:

eval(result)
将值赋给t

您可以使用eval和vectorize来评估数字范围的函数:

t = -0.1:0.01:0.1;
plot(t,eval(vectorize(result)))

这给出了:

enter image description here