2017-10-01 1 views
0

Je veux calculer l'intégrale suivante dans l'interface graphique Matlab:Intégration numérique dans l'interface graphique Matlab

f(x) = a/(a+x^2) 

Quand je entrée a = 1, ce résultat apparaît:

a^(1/2)*atan(x/a^(1/2)) 

Quel est le problème ?

Voici mon code:

a = str2double(get(handles.anum, 'String'));  
formula = sym(get(handles.enter_func, 'String'));  
result = int(formula);  
set(handles.int, 'String', char(result));  

Répondre

1

Je crois, en ahandles.enter_func n'a rien à voir avec a que vous définissez dans handles.anum. L'intégration symbolique est exécutée en supposant que le a générique. Par conséquent, vous obtenez le résultat générique. Pour la substitution, vous devez faire usage subs après intégration:

result= subs(int(formula),a,str2double(get(handles.anum , 'String'))); 

La substitution remplacerait a avec la valeur fournie dans handles.anum.