matlab 二重数值积分 第一重积分还有符号积分上限
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/09 21:18:01
matlab 二重数值积分 第一重积分还有符号积分上限
对如图中的函数进行积分,我试过解析解估计是没有的,就希望有数值解也好,式子中其实只有Z,X是未知数,a,b,M都是已知的数值,可以取做a=4,b=2,M=3. 求大神指导.各种方法都可以试一试.
![matlab 二重数值积分 第一重积分还有符号积分上限](/uploads/image/z/2499316-52-6.jpg?t=matlab+%E4%BA%8C%E9%87%8D%E6%95%B0%E5%80%BC%E7%A7%AF%E5%88%86+%E7%AC%AC%E4%B8%80%E9%87%8D%E7%A7%AF%E5%88%86%E8%BF%98%E6%9C%89%E7%AC%A6%E5%8F%B7%E7%A7%AF%E5%88%86%E4%B8%8A%E9%99%90)
clear;clc;
a=4;b=2;M=3;
f=@(z)quadl(@(x)1./((1+(z-x)/a).*(1+x/b)).^M,0,z);
quadl(@(z)arrayfun(@(z)log(1+z)*f(z),z),0,1e8)
ans =
3.1092
再问: 谢谢你。。能继续问一下那个arrayfun在这里的作用是啥嘛?我稍微去搜索了一下,arrayfun的作用貌似很强大啊。。能大致介绍一下使用arrayfun的经验吗?我对这个比较小白。。
再答: B=arrayfun(f,A); 就是将函数f分别作用于矩阵A中的每个元素,得到矩阵B 对于不支持向量化计算的函数f,用这个方法可以免去for循环的麻烦。用这个方法可以让所有不支持向量化计算的函数都支持向量化计算。 如果函数f直接就支持向量化计算,那么就直接写成B=f(A)就行了。
a=4;b=2;M=3;
f=@(z)quadl(@(x)1./((1+(z-x)/a).*(1+x/b)).^M,0,z);
quadl(@(z)arrayfun(@(z)log(1+z)*f(z),z),0,1e8)
ans =
3.1092
再问: 谢谢你。。能继续问一下那个arrayfun在这里的作用是啥嘛?我稍微去搜索了一下,arrayfun的作用貌似很强大啊。。能大致介绍一下使用arrayfun的经验吗?我对这个比较小白。。
再答: B=arrayfun(f,A); 就是将函数f分别作用于矩阵A中的每个元素,得到矩阵B 对于不支持向量化计算的函数f,用这个方法可以免去for循环的麻烦。用这个方法可以让所有不支持向量化计算的函数都支持向量化计算。 如果函数f直接就支持向量化计算,那么就直接写成B=f(A)就行了。