作业帮 > 综合 > 作业

想用matlab的循环结构利用quad quadl trapz解决六个函数的积分值问题

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/29 17:41:40
想用matlab的循环结构利用quad quadl trapz解决六个函数的积分值问题
f1=@(x)1;
f2=@(x)x;
f3=@(x)x.^2;
f4=@(x)x.^3;
f5=@(x)x.^4;
f6=@(x)exp(x);
x=0:0.01;2;
h=0;
f=2;
g={f1 f2 f3 f4 f5 f6};
for i=1:6
A(i)=quad(g(i),h,f);
B(i)=quadl(g(i),h,f);
C(i)=trapz(x,g(i)(x));
end
其中g={f1 f2 f3 f4 f5 f6};这一步可能有问题,g(2)并非是quad quadl trapz所需的函数,但是单独在命令窗口输入g(2),得ans=@(x)x;再输入quad(@(x)x,h,f)可得正确答案,但输入quad(g(2),h,f)却显示错误,求高手指导,用循环结构实现六个函数的三种积分
想用matlab的循环结构利用quad quadl trapz解决六个函数的积分值问题
lz 可以这样修改:

clear;clc
f1=@(x)1*(x+1)./(x+1);%这里需要改一下,不然没有x自变量,计算机没法算
f2=@(x)x;
f3=@(x)x.^2;
f4=@(x)x.^3;
f5=@(x)x.^4;
f6=@(x)exp(x);
x=0:0.01:2;
h=0;
f=2;
g={f1 f2 f3 f4 f5 f6};
for i=1:6
A(i)=quad(g{i},h,f);%必须用{}
B(i)=quadl(g{i},h,f);
C(i)=trapz(x,g{i}(x));
end

结果::
A =
2.0000 2.0000 2.6667 4.0000 6.4000 6.3891
B =
2.0000 2.0000 2.6667 4.0000 6.4000 6.3891
C =
2.0000 2.0000 2.6667 4.0001 6.4003 6.3891

希望能帮助你
再问: 非常感谢啦 多谢指点