solve nonlinear equation
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I write a method to solve any equation
function [ result ] = get( func )
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
result=solve(func);
end
when I run it on command window,I get an error.
>> f=@(x) 2*x+1
f =
@(x)2*x+1
>> [ result ] = get( f )
??? Error using ==> error
Function is not defined for 'function_handle' inputs.
Error in ==> solve>getEqns at 182
error('symbolic:solve:errmsg1', ...
Error in ==> solve at 67
[eqns,vars] = getEqns(varargin{:});
Error in ==> get at 4
result=solve(func);
so how can I fix the error
0 commentaires
Réponses (3)
Oleg Komarov
le 31 Mai 2011
You have to convert the anonymous function handle to a string function:
fh = @(x,y) 2*x+1-2*y;
% Convert to string
fs = func2str(fh);
% Extract only function part w/o @(.)
fs = regexprep(fs,'@\([\w,]+\)','');
% Solve
solve(fs)
4 commentaires
Walter Roberson
le 1 Juin 2011
solve() only applies to symbolic expressions. If you are going to use symbolic expressions you might as well do so from the start and save the trouble about constructing function handles.
4 commentaires
Walter Roberson
le 1 Juin 2011
If this is for an assignment, then it would help us to read the assignment question, as then we would not suggest things you cannot use.
Walter Roberson
le 1 Juin 2011
If the assignment prohibits you from passing around symbolic variables, then why does it permit you to use solve(), the symbolic equation solver?
Eman Ahmed Elsayed
le 1 Juin 2011
1 commentaire
Oleg Komarov
le 1 Juin 2011
What do you mean you have the same problem? Post the whole code you're using and the error message.
Voir également
Catégories
En savoir plus sur Nonlinear Optimization dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!