MATLAB中如何对含有多个变量的函数,只对其中一个或两个变量进行数值积分,而其他变量为设定的定值呢?
最好用的方法
由于对一个或两个变量进行积分方法类似,下面通过一个对两个变量进行积分的案例来介绍这种方法。
案例问题描述:有函数f=x+y+z,在z值为3的条件下,对x和y进行积分,x的积分范围为0到1,y的积分范围为0到2.
求解代码:
f = @(x,y,z)x+y+z;
res = integral2(@(x,y)f(x,y,3),0,1,0,2);
执行结果为: res=9
- 上面为求解此案例最好的方法,但是有时候存在函数f并非这样简单的一个函数,可能是通过其他数值解法求出来的函数,这时f可能存在于一个单独的函数文件中,这种情况下同样可以完成积分的求解。
- 文件myfun.m中的代码
function res = myfun(x,y,z)
res = x+y+z; %这里替换需要求解的函数的代码块
end
- 主函数中代码
res = integral2(@(x,y)myfun(x,y,3),0,1,0,2);
结果同样为: res=9
扩展方法
还有另一中方法是将需要设置为常量的参数定义为全局变量,不作为函数myfun的传参,这样可以直接在integral2中调用myfun函数进行传参,不过这种方法并不是很好用。