m0_61305569 2021-08-28 09:03 采纳率: 50%
浏览 81
已结题

三重累加求和数值积分怎么编程呢

最近遇到一个棘手的问题,面对这个三重的如何进行数值积分编程?
之前只进行过一重的数值积分代码如下

clear
clc
n=20;
d=0.1;
x=-0.2:0.0001:0.2;
N=length(x);
sum=0;
%trapz方法
for i=0:n
    for ii=1:N
        y=x(ii);
        f(ii)=0.9.*(%函数)
    end
    S=trapz(x,f);
    sum=sum+S;
end
sum

img

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-08-28 10:39
    关注

    这个最好用integral3函数

    % 定义被积函数,注意用的是对应位置相乘的结果所以乘法、幂次和除法要加.号
    F = @(u,w,v,i,d,n) 0.9*(d+0.15*i/n-w)./((v-u).^2+(d+0.15*i/n-w).^2).^(3/2)...
    - 0.9*(d+0.15*i/n-w)./(0.025*0.025 + (v-u).^2 + (d+0.15*i/n-w).^2).^(3/2);
    u1 = -0.022; u2 = 0.022; % 积分区间
    w1 = -0.1; w2 = 0;% 积分区间
    v1 = -0.2; v2 = 0.2;% 积分区间
    n = 20;
    i_arr = 0:n;
    d = 0.1;
    S = 0;% 求和初值
    for i = 1:1:numel(i_arr)
    S = S + integral3(@(u,w,v)F(u,w,v,i_arr(i),d,n),u1,u2,w1,w2,v1,v2);
    end
    S
    

    结果

    
    S =
    
       0.012099286633777
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月5日
  • 已采纳回答 8月28日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?