辛普森 matlab

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了辛普森 matlab相关的知识,希望对你有一定的参考价值。

用辛普森公式求积分∫ e-xdx (上限1 下限0 不会打 )并估计误差。
请用Matlab做,我对Matlab真的一点也不懂。所以拜托各位了。谢谢
我需要的是完整的过程哦。谢谢帮助。

function [y e]= Simpson(f,a,b,M)
% f被积函数;a积分下限;b积分上限;M子区间个数(将x分为多少个区间)
h=(b-a)/(2*M);
s1=0;
s2=0;
for i=1:M
x=a+(2*i-1)*h;
s1=s1+feval(f,x);
end
for j=1:(M-1)
x=a+2*j*h;
s2=s2+feval(f,x);
end
y=h/3*(feval(f,a)+2*s2+4*s1+feval(f,b));
e=quad(f,0,1)-y;%误差(运行后不显示,把这行命令的分号去掉就运行可以显示误差)
我的结果是
>> Simpson(f,a,b,M)

e =

-4.4409e-016

ans =

2.2183
参考技术A syms x
int(exp(-x),x,0,1)
参考技术B 下面是我做的simpson积分:给定精度。
里面有我写的WORD版本,就是求解过程的分析(也有误差分析)
http://www.matlabsky.com/thread-7207-1-1.html
参考技术C ~jypan/Teaching/sxsy0902/lect07p_exp03.pdf
答案在上面,你自己看吧
参考技术D ~jypan/Teaching/sxsy0902/lect07p_exp03.pdf
答案在上面,你自己看吧

Matlab问题!用辛普森公式求数值积分..

f=@(x)2/(1+x.^2);
I=quad(f,-1,1)
出错:??? Error using ==> mrdivide
Matrix dimensions must agree.

Error in ==> quad at 62
y = f(x, varargin:);
---------------------------------------------------------------------------------------------
但如果是f=@(x)2*(1+x.^2)的话,就不会出错...
请高手出马解决!

Matrix dimensions must agree.
很明显,维数不匹配……你用矩阵算的,你的保证参与运算的矩阵其行列数可以保证矩阵运算的进行吧~~
参考技术A f=@(x)2./(1+x.^2); % 少点
I=quad(f,-1,1)本回答被提问者采纳

以上是关于辛普森 matlab的主要内容,如果未能解决你的问题,请参考以下文章

Matlab代写代写MatlabMatlab编程代写代写Matlab编程test_TDPC_encoder

MATLABMatLab 将两张或多张图片一次展示出来在一个窗口展示两张或多张图片

MatlabMatlab2017 使用Microsoft Visual studio做编译提示“fatal error C1083: 无法打开包括文件: “stdlib.h”: No such f(代

复合辛普森公式应该几等分

为啥复合辛普森公式分成2n等份

复合辛普森公式求积分