我正在尝试针对x
取函数的-1到1的定积分。该函数具有变量a
,b
,c
,d
和x
,我将它们全部定义为syms
变量。我试图将a
,b
,c
,d
保留在我的最终积分中,因为稍后我将针对优化问题针对每个变量进行区分。这是我当前拥有的代码:
syms f(x);
syms a b c d;
f(x)= (exp(x)-a*(1/sqrt(2))-b*(sqrt(3/2)*x)-c((sqrt(45/8))*(x^2-(1/3)))+d((sqrt(175/8))*((x^3)-(3/5)*(x))))^2;
integral = int(f,x,[-1 1]);
disp(integral);
类似的代码在我尝试使用较小功能的变量x
和y
时有效。但是,当我尝试这段代码时,我得到:
使用sym / subsindex时出错(第825行)无效的索引编制或函数 定义。索引必须遵循MATLAB索引。函数参数 必须是符号变量,函数体必须是sym表达式。
sym / subsref错误(第870行)
R_tilde = Builtin('subsref',L_tilde,Idx);HW11中的错误(第4行)
f(x)=(exp(x)-a *(1 / sqrt(2))-b *(sqrt(3/2) x)-c((sqrt(45/8))(x ^ 2-(1/3)))+ d((sqrt(175/8))((x ^ 3)-(3/5)(x))))^ 2;
我对MATLAB中的符号函数和syms
变量还很陌生,为什么MATLAB拒绝此代码?我尝试过的类似代码是:
syms f(x);
syms y;
f(x) = (x^2) + y;
integral = int(f,[0 3]);
disp(integral);