Line 5: |
Line 5: |
| === Demos and usage examples === | | === Demos and usage examples === |
| | | |
− | * ''' I'm trying to substitute a double value into an expression. How can I avoid getting "warning: Using rat() heuristics for double-precision input (is this what you wanted?)" | + | * '''I'm trying to substitute a double value into an expression. How can I avoid getting "warning: Using rat() heuristics for double-precision input (is this what you wanted?)".''' |
| | | |
| In general, you should be very careful when converting floating point ("doubles") to symbolic variables, that's why the warning is bothering you. | | In general, you should be very careful when converting floating point ("doubles") to symbolic variables, that's why the warning is bothering you. |
Line 45: |
Line 45: |
| % have fun and change it if you want to. | | % have fun and change it if you want to. |
| | | |
− | f=@(x) x.^2 +3*x-1 + 5*x.*sin(x); | + | f = @(x) x.^2 + 3*x - 1 + 5*x.*sin(x); |
| | | |
− | % the next 2 line take the Anonymous function into a symbolic formula | + | % these next lines take the Anonymous function into a symbolic formula |
| | | |
| + | pkg load symbolic |
| syms x; | | syms x; |
− | | + | ff = f(x); |
− | ff=formula(f(x)); | |
| | | |
| % now calculate the derivative of the function | | % now calculate the derivative of the function |
| | | |
− | ffd=diff(ff); | + | ffd = diff(ff, x); |
| | | |
| % and convert it back to an Anonymous function | | % and convert it back to an Anonymous function |
| | | |
− | df=function_handle(ffd) | + | df = function_handle(ffd) |
| | | |
| | | |
− | % this uses the interval pkg. to find all the roots between -15 an 10 | + | % this uses the interval pkg to find all the roots between -15 an 10 |
| | | |
| + | pkg load interval |
| fzero (f, infsup (-15, 10), df) | | fzero (f, infsup (-15, 10), df) |
| | | |