复化辛普森公式求二重积分matlab源码及例题

复化辛普森公式求二重积分matlab源码

直接拷贝到matlab编辑器,傻瓜式操作。具体算法自行探究,网上都有,小编只提供代码。用的好的请加个关注,篱落~~成殇~~再次先行谢过。

%%%%%%%%%%     2020.6.5        %%%%%%%%%
%%%%%%%%%%复化Simpson公式求二重积分%%%%%%%%%
%%%%%%%%%%     Liu Deping      %%%%%%%%%
clear all;
%%%被积函数及积分上下限导入;
s=input('请输入函数表达式:f = ','s');
f=inline(s);
a = input('请输入积分变量x左边界a的值:');
b = input('请输入积分变量x右边界b的值:');
c = input('请输入积分变量y左边界c的值:');
d = input('请输入积分变量y右边界d的值:');
h1 = input('请输入积分变量x步长h1的值:');
h2 = input('请输入积分变量y步长h2的值:');
m=round((b-a)/h1);
n=round((d-c)/h2);
%%%系数表T,t[i,j]为复化梯形公式的系数;
T=zeros(m+1,n+1);
R=[1,4,1;4,16,4;1,4,1];
for p=0:m/2-1
    for q=0:n/2-1
        for i=1:3
            for j=1:3
                T(i+2*p,j+2*q)=T(i+2*p,j+2*q)+R(i,j);
            end
        end
    end
end
fprintf('系数表:');
T
%%%计算各二维节点函数值,并存放于矩阵F中;
F=zeros(m+1,n+1);
for i=0:m
    for j=0:n
       F(i+1,j+1)=f(a+i*h1,c+j*h2);    
    end
end 
%%%结果输出;
format long;
fprintf('各节点函数值;')
F
fprintf('复化Simpson公式计算结果;')
Snm=(b-a)*(d-c)/(9*m*n)*sum(sum(T.*F))

下面附上一个例题吧,感受一下代码的强大。
在这里插入图片描述
只看第(2)问,利用辛普森公式计算积分。(关于第一问的代码可以去关注上一篇文章〈复化梯形公式公式求二重积分matlab源码〉)
步骤:
1.复制代码到matlab编辑器,点击运行;
2.按照提示输入:

3.得到结果(包括系数、节点函数值和积分结果):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果代码对你有帮助,请加一下关注,如果有问题可以私聊!最后,再次感谢喜欢我的小伙伴。

  • 33
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

篱落~~成殇~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值