请选择 进入手机版 | 继续访问电脑版
楼主: 李宏海
17001 11

[问答] 怎样用matlab求二重积分? [推广有奖]

  • 0关注
  • 0粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
1277 个
通用积分
0
学术水平
3 点
热心指数
4 点
信用等级
3 点
经验
16438 点
帖子
282
精华
0
在线时间
465 小时
注册时间
2010-9-16
最后登录
2013-8-24

李宏海 发表于 2011-3-15 11:05:53 |显示全部楼层 |坛友微信交流群
20论坛币
怎样求二重积分,其中二重积分的积分区间为[-inf,Xij]其中,i=1,2;j=1,2,...,100.Xij为2*100矩阵X =

  Columns 1 through 8


   -0.4326    0.1253   -1.1465    1.1892    0.3273   -0.1867   -0.5883   -0.1364
   -1.6476    0.3109    0.4211    0.5862    0.3194    0.5229    1.5589    0.0264


  Columns 9 through 16


    1.0668   -0.0956    0.2944    0.7143   -0.6918    1.2540   -1.4410   -0.3999
    0.6054   -0.7607   -0.9882    1.7582    0.3731   -0.7092   -0.2614    0.3814


  Columns 17 through 24


    0.8156    1.2902    1.1908   -0.0198   -1.6041   -1.0565   -0.8051    0.2193
    1.0322    1.2420   -0.4079   -0.1442   -0.6143    0.6594    0.0330   -0.6734


  Columns 25 through 32


   -2.1707   -1.0106    0.5077    0.5913    0.3803   -0.0195    0.0000    1.0950
   -1.1793   -0.0007    1.7096   -0.2423   -0.6642   -0.0513   -0.2715   -1.0313


  Columns 33 through 40


    0.4282    0.7310    0.0403    0.5689   -0.3775   -1.4751    0.1184    1.4435
    0.9877    0.8737    0.5993    0.0775   -0.4490   -0.9669    0.3305    0.4508


  Columns 41 through 48


    0.6232    0.9409    0.2120   -1.0078    1.0823    0.3899   -0.6355    0.4437
    1.0066   -0.3581    0.3134   -1.1579    0.4505    0.2779   -0.8084   -0.5807


  Columns 49 through 56


    0.7812   -0.8217   -1.1878    0.9863    0.3274    0.0215   -0.9471   -1.1859
    0.8922   -0.6542   -2.4988    0.0699    0.3702   -0.8464   -0.8123   -1.5186


  Columns 57 through 64


    1.4725   -1.2173   -1.1283   -0.2611    0.1286   -1.1678   -0.2624   -1.3194
    0.8133   -0.6682   -1.7392    0.6786    0.6276   -1.0007   -1.1727    0.1093


  Columns 65 through 72


    0.0112    0.8057   -0.9898    0.2895    1.1380   -1.2919   -0.3306    0.4978
   -0.5452    0.6168    0.6296    1.4138    0.0074   -0.7341   -0.8925    1.5303


  Columns 73 through 80


   -0.5465   -0.2463   -0.8542   -0.1199    0.4853   -0.1497   -0.0793   -0.6065
   -1.0074    0.4382   -1.4703   -0.1181   -0.2563   -0.4492    1.2700   -1.4662


  Columns 81 through 88


    0.4694    0.0359    0.5354   -0.2037    0.1326    1.0184   -0.0787   -1.0246
   -0.5277   -0.5174    0.7507   -1.8607    1.4296   -0.8204   -0.6232   -1.5871


  Columns 89 through 96


    0.2888    0.0558   -0.4650    0.7283   -1.3573    1.0378   -1.3813    1.5532
   -0.2165   -0.2852    0.0751    2.1828   -1.5793    0.2067   -0.4487    1.4123


  Columns 97 through 100


    1.9574    1.8645   -1.1398    1.1902
    1.4488    0.6793   -0.7730   -0.3345
>> syms x y
>> for i=1:100
a=double(int(int(1/(2*pi*sqrt(0.7296))*exp((-1/1.4592)*(x^2-1.04*x*y+y^2)),y,-inf,X(2,i)),x,-inf,X(1,i)));
end
尝试用以上程序运算,不能出来结果!!
还望哪位大侠高手不吝赐教!!

最佳答案

qibbxxt 查看完整内容

4# 李宏海 对于数值积分来说,-inf可以去一个很小的数代替 因为积分需要100次,要用循环才可以实现,比较麻烦 用arrayfun函数可以代替循环的作用,具体的你可以查看帮助文档的
关键词:MATLAB matla atlab 二重积分 Lab MATLAB 积分

本帖被以下文库推荐

低调,再低调!
qibbxxt 发表于 2011-3-15 11:05:54 |显示全部楼层 |坛友微信交流群
4# 李宏海
对于数值积分来说,-inf可以去一个很小的数代替
因为积分需要100次,要用循环才可以实现,比较麻烦
用arrayfun函数可以代替循环的作用,具体的你可以查看帮助文档的
已有 1 人评分热心指数 收起 理由
李宏海 + 1 根据规定进行奖励

总评分: 热心指数 + 1   查看全部评分

使用道具

李宏海 发表于 2011-3-15 11:10:45 |显示全部楼层 |坛友微信交流群
:其中1/(2*pi*sqrt(0.7296))*exp((-1/1.4592)*(x^2-1.04*x*y+y^2)是要求的积分函数
低调,再低调!

使用道具

qibbxxt 发表于 2011-3-18 10:24:59 |显示全部楼层 |坛友微信交流群
用数值积分可以求解,用quad2d函数
希望下面的例子能给你有所启发
  1. clear;clc;close all
  2. M=[   -0.4326    0.1253   -1.1465    1.1892    0.3273   -0.1867   -0.5883   -0.1364  
  3.    -1.6476    0.3109    0.4211    0.5862    0.3194    0.5229    1.5589    0.0264];
  4. f=@(x,y)1./(2*pi*sqrt(0.7296)).*exp((-1./1.4592).*(x.^2-1.04*x.*y+y.^2));
  5. r=arrayfun(@(a,b)quad2d(f,-1e16,a,-1e16,b),M(1,:),M(2,:))
复制代码
已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
Xaero + 60 + 60 + 1 + 1 我很赞同

总评分: 经验 + 60  论坛币 + 60  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

李宏海 发表于 2011-3-18 15:40:06 |显示全部楼层 |坛友微信交流群
麻烦大侠能给稍微解释一下第五步吗?
低调,再低调!

使用道具

李宏海 发表于 2011-3-18 17:08:31 |显示全部楼层 |坛友微信交流群
请教大侠,(@(a,b)quad2d 是执行什么命令的,另外这里的a和b分别代表什么?
低调,再低调!

使用道具

qibbxxt 发表于 2011-3-18 17:10:19 |显示全部楼层 |坛友微信交流群
6# 李宏海
这是匿名函数
a,b是输入
看函数体就会知道
a是x积分的上限
b是y积分的上限

使用道具

李宏海 发表于 2011-3-18 17:15:31 |显示全部楼层 |坛友微信交流群
我糊涂了,我这里的上限就是X矩阵其中第一行就是第一个变量的,第二行就是第二个变量的
大侠的参考代码M(1,:) M(2,:)应该就是两变量的积分上限,为什么有多出来a和b?
低调,再低调!

使用道具

qibbxxt 发表于 2011-3-18 17:17:32 |显示全部楼层 |坛友微信交流群
关于arrayfun的用法,我和一个朋友总结过,http://forum.simwe.com/viewthread.php?tid=966038

使用道具

李宏海 发表于 2011-3-18 17:24:36 |显示全部楼层 |坛友微信交流群
大侠,那个网站我注册不了啊
低调,再低调!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 01:28