登录论坛

查看完整版本 : MATLAB Unable to Store Symbolic Function with Multiple Variables


poster
2019-11-25, 15:40
<p>I'm trying to take the definite integral from -1 to 1 of a function with respect to x. The function has variables a, b, c, d, and x, all of which I've defined as syms variables. I'm trying to keep a, b, c, d in my final integral because I'll later be differentiating with respect to each one for an optimization problem. Here's the current code that I have: </p>

<pre><code> 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);
</code></pre>

<p>Similar code worked when I tried it using only variables x and y for a smaller function. However, when I try this code, I get: </p>

<pre><code> Error using sym/subsindex (line 825)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function
arguments must be symbolic variables, and function body
must be sym expression.

Error in sym/subsref (line 870)
R_tilde = builtin('subsref',L_tilde,Idx);

Error in HW11 (line 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;
</code></pre>

<p>I'm pretty new to symbolic functions and syms variables in MATLAB, why is MATLAB rejecting this code? The similar code that I tried that worked was: </p>

<pre><code> syms f(x);
syms y;
f(x) = (x^2) + y;
integral = int(f, x, [0 3]);
disp(integral);
</code></pre>



More answer... (https://stackoverflow.com/questions/59027013/matlab-unable-to-store-symbolic-function-with-multiple-variables)