MATLAB中如何对含有多个变量的函数,只对其中一个或两个变量进行数值积分

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函数进行传参,不过这种方法并不是很好用。

    原文作者:Ritch1e
    原文地址: https://blog.csdn.net/qq_42537111/article/details/114376872
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞