matlab中怎样对二元函数中的一个变量做数值积分?

2025-03-18 20:11:57
推荐回答(4个)
回答1:

用int函数不行吗?
我给你举一个可以通用的例子:
设z=axy+by^2 ,其中a、b为常量,x、y为变量
下面求a=1,b=2,x=3;时,对y在[0,1]上的积分,步骤如下:
首先,执行如下命令:yy=int('a*x*y+b*y^2','y',0,1)
会显示以下结果:
yy =

1/2*a*x+1/3*b
然后输入以下命令:
a=1;b=2;x=3;
yyyyy=subs(yy)
如下是结果:
yyyyy =

2.1667
不知道,说明白了吗!!!!!!!

回答2:

clear all
clc
syms va rho tau
f=@(va,rho,tau) (2.5-0.1*(va+rho*sin(tau)))./(exp(2.5-0.1*(va+rho*sin(tau)))-1);
n = 5000;%当想要结果更精确时,可以把n设置更大
tau = linspace(0,2*pi,n);
%自编的简单方法
Tn =@(va,rho) pi/n*(sum(f(va,rho,tau(1:end-1)))+sum(f(va,rho,tau(2:end))));
%Tn积分结果变成参数的函数,结果由参数确定。
va = 2;rho = 5;
Tn(va,rho) %这就是数值积分带入参数后的结果,这时积分结果成为参数的函数

%利用matlab自带函数的方法,先确定参数值然后积分。两种方法都可以,后者精度高。
h = @(tau) f(va,rho,tau) %
integral(h,0,2*pi)

回答3:

用符号表达式如
syms x y;
d=3*x+2*y;
int(d,'x')
结果就只对x积分了

回答4:

不行的,数值积分必须给定其它参数。