55 lines
945 B
Markdown
55 lines
945 B
Markdown
|
---
|
|||
|
title: Matlab使用Simpson辛普森法计算数值积分
|
|||
|
date: 2021-11-12 00:00:00
|
|||
|
tags:
|
|||
|
- Matlab
|
|||
|
- 编程
|
|||
|
category: 技术
|
|||
|
---
|
|||
|
|
|||
|
![Matlab 运用Simpson辛普森公式求定积分(附代码)](http://os1.eigeen.com/static/2021/11/Snipaste_2021-11-12_14-41-58.png)
|
|||
|
|
|||
|
<!-- more -->
|
|||
|
|
|||
|
直接附代码
|
|||
|
|
|||
|
```matlab
|
|||
|
simpson.m
|
|||
|
function [out] = simpson(f,n,a,b)
|
|||
|
%SIMPSON 此处显示有关此函数的摘要
|
|||
|
% 此处显示详细说明
|
|||
|
|
|||
|
h=(b-a)/n;
|
|||
|
|
|||
|
s1=fi(f,1,h,a)+fi(f,n+1,h,a);
|
|||
|
|
|||
|
s2=0;
|
|||
|
for index=3:2:n-1
|
|||
|
s2=s2+2*fi(f,index,h,a);
|
|||
|
end
|
|||
|
|
|||
|
s4=0;
|
|||
|
for index=2:2:n
|
|||
|
s4=s4+4*fi(f,index,h,a);
|
|||
|
end
|
|||
|
|
|||
|
out=h/3*(s1+s2+s4);
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
function [out] = fi(f,i,h,a)
|
|||
|
|
|||
|
out=f(a+(i-1)*h);
|
|||
|
end
|
|||
|
```
|
|||
|
|
|||
|
调用:
|
|||
|
|
|||
|
```matlab
|
|||
|
simpson(<函数句柄>, <n>, <下限>, <上限>)
|
|||
|
```
|
|||
|
|
|||
|
> 参考文章
|
|||
|
>
|
|||
|
> [matlab用辛普森公式求积分_积分近似计算之辛普森公式_weixin_39726131的博客-CSDN博客](https://blog.csdn.net/weixin_39726131/article/details/110226598)
|