matlab中如何计算二重积分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何计算二重积分相关的知识,希望对你有一定的参考价值。
如何利用matlab,画出
额 因为对matlab不是很熟悉,望能提供详细的代码 O(∩_∩)O谢谢
O(∩_∩)O谢谢提醒
%假设x,y的积分限均为(-0.1,0.1)
clc
clear
s=linspace(0,sqrt(3));
k=zeros(size(s));
for i=1:length(s)
rhom=2*pi/3/sqrt(3)/s(i);
rho1=@(x,y)abs(1-sqrt(x.^2+y.^2)-rhom);
rho2=@(x,y)abs(2-sqrt(x.^2+y.^2)-sqrt((x-s(i)).^2+y.^2)-rhom);
rho3=@(x,y)abs(2-sqrt(x.^2+y.^2)-sqrt((x-s(i)).^2+y.^2)-sqrt((x-s(i)/2).^2+(y-sqrt(3)*s(i)/2).^2)-rhom);
Q1=quad2d(rho1,-0.1,0.1,-0.1,0.1);
Q2=quad2d(rho2,-0.1,0.1,-0.1,0.1);
Q3=quad2d(rho3,-0.1,0.1,-0.1,0.1);
k(i)=Q1+Q2+Q3;
end
plot(s,k)
xlabel('s')
ylabel('k')
参考技术A 使用matlab的int函数可以方便的计算积分,以及多重积分。设二重积分还是表达式为
z=z(x,y),积分域为下限
y1(x)
上限
y2(x),从
x1
到
x2,则二重积分代码为:
int(int(z,y,y1,y2),x,x1,x2)
需要先定义符号变量
x,y,以及表达式
z,y1,y2
和数值
x1,x2
的值。
下面举例在半径为1,以原点为圆心的圆上,对
z=x^2+y^2+xy
做二重积分:
向左转|向右转
int
,函数功能强大,可以计算积分、定积分、广义积分以及一些特殊积分(如
sin(x)/x
的无穷积分、高斯积分、伽马积分等),对于学习高等数学的同学很有应有价值。 参考技术B 原发布者:akarlee
一使用两次一重积分%%二重积分f=@(x,y)exp(sin(x))*ln(y),y从5*x积分到x^2,x从10积分到201(7.X后版本才有此函数quad2d)y1=quad2d(@(x,y)exp(sin(x)).*log(y),10,20,@(x)5*x,@(x)x.^2)2y2=quadl(@(x)arrayfun(@(x)quadl(@(y)exp(sin(x)).*log(y),5*x,x.^2),x),10,20)3y3=dblquad(@(x,y)exp(sin(x)).*log(y).*(y>=5*x&y<=x.^2),10,20,50,400)详细请看吴鹏老师的文章www.ilovematlab.cn/viewthread.php二使用dblquad函数q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method)该函数求f(x,y)在[a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。例8-5计算二重定积分(1)建立一个函数文件fxy.m:functionf=fxy(x,y)globalki;ki=ki+1;%ki用于统计被积函数的调用次数f=exp(-x.^2/2).*sin(x.^2+y);(2)调用dblquad函数求解。globalki;ki=0;I=dblquad('fxy',-2,2,-1,1)kiI=1.57449318974494ki=1038来源精通MATLAB科学计算一书王正林,龚纯,何倩编写,电子工业出版社三复合辛普森公式(矩形积分区域)functionq=DblSimpson(f,a,A,b,B,m,n)if(m==1&&n==1)%辛普森公式q=((B-b)*(A-a)/9)*(subs(sym(f),findsym(sym(f)),a,b)+...subs(sym(f),findsym(sym(f)),a,B)+...subs(sym(f),findsym(sym(f)),A,b)+...subs(sym(f),findsym(sym(f)),A,B)+...4*subs(sym(f),findsym(sym(f)),(A-a)/2,b)+...4*subs(sym(f),findsym(sym(f)), 参考技术C 两个方法:
1.
使用两次符号积分函数int()
2.
直接使用二重数值积分函数dblquad() 参考技术D 两个方法:
1.
使用两次符号积分函数int()
2.
直接使用二重数值积分函数dblquad()
以上是关于matlab中如何计算二重积分的主要内容,如果未能解决你的问题,请参考以下文章