das Problem tritt wohl erst bei Vektoren auf, und so ein Beispiel bräuchte man dann auch, um dir zu helfen. Sind a, b und epsi jeweils Vektoren, oder nur einer davon?
hier mal mein kompletter code da es mehrere a gibt die von x abhängig sind
Code:
function[erg,AW]=exakteLsg(N,a,s,b_function,epsi,f_function)
%diese errechnte die exakte Lösung
AW=[00];%start um den Aufwand zu zählen
beta=1;
alpha=-1;
h=(beta-alpha)/N; %berechnung von h
x=(alpha+h):h:(beta-h); %berechnung von x
a_function=a*(x.^s); %berechnung von a(x)
AW=AW+[23]; %Aufwand
x_length=length(x); %
%Auf konstanz von f(x) b(x) testen
vb=isnumeric(b_function);
vf=isnumeric(f_function);
vq=vb+vf;
AW=AW+[01];
%Erstellen einer Matrix mit x zeilen und einer spalte um eine die größe der
%matrix vorher fetszulegen
f0=zeros(x_length,1);
b0=zeros(x_length,1);
die Frage ist nun, was wir damit anfangen sollen.
a und epsi sind Eingabeargumente, deren Dimensionen wir nicht kennen.
b wird auf den ersten Blick weder übergeben noch belegt?
Es klappt vielen Dank doch nun ein neus Problem ich hoffe ihr könt mir weiter helfen.So weit steht der code.
Code:
function[erg,AW]=exakteLsg(N,a,s,b_function,epsi,f_function)
%diese errechnte die exakte Lösung
AW=[00];%start um den Aufwand zu zählen
beta=1;
alpha=-1;
h=(beta-alpha)/N; %berechnung von h
x=(alpha+h):h:(beta-h); %berechnung von x
a_function=a*(x.^s); %berechnung von a(x)
AW=AW+[23]; %Aufwand
x_length=length(x); %
%Auf konstanz von f(x) b(x) testen
vb=isnumeric(b_function);
vf=isnumeric(f_function);
vq=vb+vf;
AW=AW+[01];
%Erstellen einer Matrix mit x zeilen und einer spalte um eine die größe der
%matrix vorher fetszulegen
f0=zeros(x_length,1);
b0=zeros(x_length,1);
er gibt mir die lambda aus nun möchte ich
das er mir mit hilfe der formel e^lambda1*x und e^lambda2*x
eine Matrix erstellt wobei e^lambda1*x für die verschiedenen x in der ersten Spalte steht und e^lambda2*x in der zweiten Spalte.Ich habe mir es so gedacht
Code:
A=zeros(N-2,N-2);%Null Matrix mit N-1 Zeilen und Spalten
%einsetzen der gleichungen in die diagonalen
for ze =1:N-2 for sp=1:N-2 if(ze-1 == sp)
A(ze, sp) = exp(lambda1*x(i)) elseif(ze==sp-1)
A(ze,sp) =exp(lambda2*x(i)) end;
end;
end;
Kannst du vielleicht erklären was rauskommen soll?
Aufpassen lamda ist ein 3 Stelliger Zeilenvektor!
Und du Versuch an eine Stelle in Matrix A gleich 3 Werte zu schreiben.
Bisschen viel?
das Problem ist doch, dass die lambda's Vektoren sind. D.h. verschiedene x-Werte UND verschiedene lambda-Werte, und das für 2 lambda-Vektoren. Die von dir angegebene Form passt dazu nunmal nicht.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.