当前位置:首页 > 代码 > 正文

三阶simpsonmatlab代码的简单介绍

admin 发布:2023-01-31 20:00 38


本篇文章给大家谈谈三阶simpsonmatlab代码,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

【matlab】达人请进

%simpson.m

function f=simpson(f_name,a,b,n)

h=(b-a)/n;

x=linspace(a,b,2*n+1);

y=feval(f_name,x);

f=h/6*(y(1)+y(2*n+1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n)));

%fun.m

function y=fun(x)

y=4./(1+x.^2);

command window中运行

simpson('fun',0,1,100) %这里用具体的fun代替f_name

ans=

f=3.1416

============================================

第二种方式:保留函数句柄

function f=simpson(a,b,n)

h=(b-a)/n;

x=linspace(a,b,2*n+1);

y=feval(@fun,x);

f=h/6*(y(1)+y(2*n+1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n)));

%fun.m

function y=fun(x)

y=4./(1+x.^2);

command window中运行

simpson(0,1,100) %需要被evaluated的fun已经在文件里指明了,这里就不需要重复了。

运行结果:

ans=

f=3.1416

两种方法一致。

加点分吧~~

simpson公式的matlab程序

function I=simpson(fun,a,b,k)

n=2.*k+1;

h=(b-a)/(n-1);

x=a:h:b;

f=feval(fun,x);

I=(h/3).*(f(1)+4.*sum(f(2:2:n-1))+2.*sum(f(3:2:n-2))+f(n));

辛普森 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

三阶simpsonmatlab代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、三阶simpsonmatlab代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/35812.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载