如何在 Matlab 中的 quadl 函数上使用附加变量?
How do I use an additional variable on a quadl function in Matlab?
我正在尝试将一个函数从另一个 .m 文件传递到一个 quadl 调用中,该调用在计算该函数时也需要一个额外的变量。
我当前的电话是这样的:
fun=@fun1
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
我想让 fun1 从最小值到最大值进行评估。
我在fun1.m文件中的函数是:
function func=fun1(x)
func = x^2+x+y
如何传递 'y' 变量?
我已尝试将 quad 调用更改为:
y=quadl(fun1(y), min, max, 0.00001);
和:
y=quadl(fun1(y), min, max, 0.00001);
和函数:
function func=fun1(x,y)
func = x^2+x+y
但这不起作用。
我也试过声明一个全局变量,但它给我一个未声明的变量错误。
感谢帮助!
首先quadl
会在以后的版本中移除,所以最好使用integral
。
你应该使用:
function func=fun1(x,y)
func = x.^2+x+y; % with .^
然后在您的其他脚本中,将 fun
声明为 x
的函数:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=integral(fun, min, max);
如果你坚持使用quadl
,你完全可以这样做:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
编辑:
要在 x
积分后保持 y
的表达式功能,您需要使用 syms
和 int
:
syms x y z
fun = fun1(x,y,z);
min = 0;
max = 2;
expr = int(fun, x, min, max);
我正在尝试将一个函数从另一个 .m 文件传递到一个 quadl 调用中,该调用在计算该函数时也需要一个额外的变量。
我当前的电话是这样的:
fun=@fun1
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
我想让 fun1 从最小值到最大值进行评估。
我在fun1.m文件中的函数是:
function func=fun1(x)
func = x^2+x+y
如何传递 'y' 变量?
我已尝试将 quad 调用更改为:
y=quadl(fun1(y), min, max, 0.00001);
和:
y=quadl(fun1(y), min, max, 0.00001);
和函数:
function func=fun1(x,y)
func = x^2+x+y
但这不起作用。
我也试过声明一个全局变量,但它给我一个未声明的变量错误。
感谢帮助!
首先quadl
会在以后的版本中移除,所以最好使用integral
。
你应该使用:
function func=fun1(x,y)
func = x.^2+x+y; % with .^
然后在您的其他脚本中,将 fun
声明为 x
的函数:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=integral(fun, min, max);
如果你坚持使用quadl
,你完全可以这样做:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
编辑:
要在 x
积分后保持 y
的表达式功能,您需要使用 syms
和 int
:
syms x y z
fun = fun1(x,y,z);
min = 0;
max = 2;
expr = int(fun, x, min, max);