2016-08-08 43 views
0

Ich frage mich, ich den folgenden Code haben:Konturplot kein Ergebnis zeigt

[r,R] = meshgrid(2:0.01:10,-4:0.01:4); 
Z=(((R).^2)-1); 
    A=2+ (R.*(r+r^-1)); 
    B=sqrt(Z).*(r-r^-1); 
    C=((r+r^-1)./(sqrt(Z))).*acoth(A./B); 
    figure 
contourf(r,R,C); 
    h=colorbar; 
    set(get(h,'ylabel'),'string','\gamma P_P L') 
    xlabel('$r$','Interpreter','latex','FontSize',18) 
    ylabel('$D \over 2\sqrt{M}$','Interpreter','latex','FontSize',18) 

bekomme ich nur für A und B alle Antworten unendlich, aber ich bin nicht sicher, warum?

Antwort

2

Sie haben den Punkt vergessen. r^-1 ist das gleiche wie inv(r). Und da alle Zeilen von r die gleichen wie die ersten Zeilen sind, hat die verkürzte Zeilen-Echelon-Form fast alle Nullen, und die Umkehrung hat unendliche Werte. Ich glaube, Sie

gemeint
A=2+ (R.*(r+r.^-1)); 

oder, deutlicher meiner Meinung nach,

A=2+ (R.*(r+ 1./r)); 

und so weiter für den Rest der r^-1.

+0

Vielen Dank Ich habe mich nur gefragt, ob ich meine Funktion in einem Konturdiagramm eine Bedingung auferlegen kann –

+2

@AbedLibnanHaidar Es hängt davon ab, was Sie damit meinen. Könnten Sie genauer sein und ich werde sehen, ob ich eine Frage finden kann, um Ihnen zu helfen? – TroyHaskin