数值计算方法——数值积分与数值微分

数值积分与数值微分的MATLAB实现

数值积分

梯形公式

function f=f(a)
%积分函数
f=a^2;
function s=tx(a,b)
%梯形公式
fa=f(a);
fb=f(b);
s=(b-a)/2*(fa+fb);
function t=fhtx(a,b,n)
xx=linspace(a,b,n+1);
s=zeros(1,n);
t=0;
for i=1:n
    a=xx(i);
    b=xx(i+1);
    s(i)=tx(a,b);
    t=t+s(i);
end

%测试文件
%正确结果21.333333
clc
clear
a=0;
b=4;
n=100;   %n越大,越接近正确结果
s=fhtx(a,b,n);
disp(s)

中矩形公式

function s=zjx(a,b)
%中矩形公式
c=(a+b)/2;
fc=f(c);
s=(b-a)*fc;
function t=fhzjx(a,b,n)
xx=linspace(a,b,n+1);  %线性方程,a,b之间生成n+1个数
s=zeros(1,n);
t=0;
for i=1:n
    a=xx(i);
    b=xx(i+1);
    s(i)=zjx(a,b);
    t=t+s(i);
end
%测试文件
%正确结果21.333333
clc
clear
a=0;
b=4;
n=100;
s=fhzjx(a,b,n);
disp(s)

Simpson公式

function s=Simpson(a,b)
%Simpson公式
c=(a+b)/2;
fa=f(a);
fb=f(b);
fc=f(c);
s=(b-a)/6*(fa+4*fc+fb);
function t=fhSimpson(a,b,n)
xx=linspace(a,b,n+1);  %线性方程,a,b之间生成n+1个数
s=zeros(1,n);
t=0;
for i=1:n
    a=xx(i);
    b=xx(i+1);
    s(i)=Simpson(a,b);
    t=t+s(i);
end
%测试文件
clc
clear
a=0;
b=4;
n=10;
s=fhSimpson(a,b,n);
disp(s)

其他

参考其他博客

梯形

%测试文件
x=0:pi/100:pi; 
y=sin(x); 
trapz(x,y)  %复化梯形数值积分公式函数语句
%可通过help trapz查看用法

Simpson

f1 = @(x) 2/sqrt(pi)*exp(-x.^2);  % //匿名函数的调用,注意中间的空格
f2 = @(x) x;
y1 = integral(f1,0,1.5)  % //Simpson公式数值求解
y2 = integral(f2,0,1.5)
f1 = @(x) 2/sqrt(pi)*exp(-x.^2);  % //匿名函数的调用,注意中间的空格
f2 = @(x) x.^2;%矩阵的形式,必须点乘
y1 = integral(f1,0,1.5)  % //数值求解
y2 = integral(f2,0,4) 

MATLAB常用函数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hyacinth&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值