可以用for循环或quadv(对向量一次求积分)
quadv做法
f=@(x,t)sin((x-(0:0.01:t)).^2);
y=quadv(@(x)f(x,10),0,pi);
plot(t,y)
for循环赋值法
%因为原参数有5个,所以第六个场可以传参数
f=@(x,t)sin((x-t).^2);
t=-5:0.01:5;
for i=1:length(t)
s(i)=quadl(f,0,pi,[],[],t(i));
end
plot(t,s)
这个做法值得借鉴,写成function时将无效取值取极限,可以避免用自带函数积分时无法得到结果
因为matlab提供的函数积分区域都为方形,所以需要转化成这样的区域再积分,这个时候可以转换变量,也可以转换函数的表达式(十分巧妙)
x=-1:0.01:1;
y=-1:0.01:1;
[X Y]=meshgrid(x,y);
f=@(X,Y)sqrt(max(0,1-X.^2-Y.^2));
dblquad(f,-1,1,-1,1)
第二个我还不会写,再想想