作业帮 > 综合 > 作业

matlab如何画数值积分运算中的小方格,并且线不同颜色,如图.如何用matlab编如图二所示的辛普森方程

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/25 22:40:21
matlab如何画数值积分运算中的小方格,并且线不同颜色,如图.如何用matlab编如图二所示的辛普森方程
我是一名matlab入门的同学,做一个程序的时候遇到了一些问题,希望大神能给一些指导
1.我在编一个matlab程序来求数值积分,其中有一项是绘图,我可以操作plot画出简单的y-x的曲线,当时希望大神能给指导一下如何在y(x)图像的基础之上加上如图所示的小方格,并且用上不同的颜色,来体现这是数值运算的操作原理.

2.在把如图二所示的方程变成程序的时候,也遇到了一些疑惑的东西,比如方程中的...希望大神能给写一个程序让我看一下,怎样才能完整的把这个方程表示出来    

其中图二所示的方程中的y(x); x0; x1; n 都是需要用户输入的,求大神给把方程编出来给给我做一下参考    


matlab如何画数值积分运算中的小方格,并且线不同颜色,如图.如何用matlab编如图二所示的辛普森方程
ff=input('function:','s');%注意乘与点乘,要用点乘,如exp(-x/4).*cos(x)
fun=eval(['@(x)',ff]);
x0=input('x0:');
x1=input('x1:');
n=input('n:');%偶数
h=(x1-x0)/n;
x=x0:h:x1;x=x(:)';
y=fun(x);
f=[2*ones(1,n/2+1);4*ones(1,n/2+1)];f=f(:)';f(1)=1;f(end)=[];f(end)=1;
%数值积分
Int=h/3*sum(f.*y);
xx=repmat(x(:)',2,1);xx=xx(2:end);xx=xx(:);
yy=repmat(y(:)',2,1);yy=yy(1:end-1);yy=yy(:);
plot(x,y,'k')
hold on
plot(xx,yy,'r');
plot(repmat(x(1:2:end),2,1),[zeros(size(x(1:2:end)));y(1:2:end)],'b')
plot(repmat(x(2:2:end),2,1),[zeros(size(x(2:2:end)));y(2:2:end)],'g')
plot([x0,x1],[0,0],'k');
xlabel('X')
ylabel('Y')
title(['Numeric integration of ',ff,' with ',num2str(n),' slices'])
vpa(Int,10)%数值解
%%下面是符号解
vpa(int(sym(strrep(strrep(ff,'.*','*'),'./','/')),x0,x1),10)