WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Skalarprodukt

 

sofie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2007, 13:23     Titel: Skalarprodukt
  Antworten mit Zitat      
Hallo
Ich fange gerade an mit Matlab zu arbeiten und habe leider anfänger Probleme. Ich soll ein Programm schreiben, dass das Skalarprodukt zweier Vektoren berchnet. Kann mir jemand ein Tipp geben wie ich anfangen soll?

Ich habe es so probiert:

funktion Skalarprodukt (s)
s=v(x)*w(y)'
V(x)=[x^2,x^2,x^2,y^2,y^2]
W(y)=[x^2,4*x*y,6*y^2,4*x*y,y^2]
end


bitte nich lachen ok!!


W31dn3r
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2007, 14:38     Titel:
  Antworten mit Zitat      
Code:

%____________Beispiel 1: Ohne Funktion_____________
% symbolische Variable deklarieren
syms x y
% Initialisierung der Vektoren
vOne=[x^2, x^2    , x^2     ,  y^2   ,y^2]  
vTwo=[x^2, 4*x*y , 6*y^2 ,  4*x*y ,  y]
% Berechnung des Skalarprodukts
sErgebnis=vOne*vTwo';
 


Code:

%____________Beispiel 2: Als Funktion_____________
% Die beiden Vectoren müssen vorher im Programmcode Initialisiert
% und als Parameter vOne und vTwo an die Funktion übergeben werden
% das Ergebnis ist dann in sErgebnis
function sErgebnis= Skalarprodukt(vOne,vTwo)
sErgebnis=vOne*vTwo';
 

Viel Erfolg

Zuletzt bearbeitet von W31dn3r am 10.11.2007, 14:51, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.11.2007, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

google mal nach "Matlab an der ETH".
Dann findest Du ein gutes Tutorial, mit dem Du
Dir die Matlab-Grundlagen erarbeiten kannst.

Ein ganz einfaches Programm könnte so aussehen:
Code:
clear all; % alle Variablen loeschen
clc; % Bildschirm saubern

A=[1; 2; 3]; % Zeilenvektor
B=[17; 2; 7]; % Zeilenvektor
S=0; % Variable fuer Skalarprodukt initialisieren
for i=1:3
    S=S+A(i)*B(i); % A(i) ist das i-te Element von A
end
S


Die Matlab-eigene Routine zum Berechnen des Skalar-Produktes
ist dot.

Viele Grüße
nschlange
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sofie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2007, 14:58     Titel: so?
  Antworten mit Zitat      
So habe dies jetzt als function gemacht. Hab nur noch ein problem. X soll eingegeben werden und y=x-1.
y hab ich auch so definiert aber er zeigt mir dann immer an das x nicht definiert ist. wie bekomme ich x als eingabe hin?

so sieht es jetzt aus:

function sErgebnis=Skalarprodukt(vOne,vTwo)
vOne=v(x)
v(x)=[x^2,x^2,x^2,y^2,y^2]
vTwo=w(y)
w(y)=[x^2;4*x*y;6*y^2;4*x*y;y^2]
y=x-1
sErgebnis=vOne*vTwo';
end
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.11.2007, 15:11     Titel:
  Antworten mit Zitat      
Sollst Du das symbolisch machen oder numerisch?
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sofie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2007, 15:16     Titel: Aufgabe
  Antworten mit Zitat      
Ich soll ein Programm schreiben, mit hilfe des funcktion-befehls, das von den Vektoren:v(x) und w(y) das Skalarprodukt berechnet. Dabei soll y=x-1 sein. x soll vom Benutzer beim aufruf der Funktion eingegeben werden.
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.11.2007, 15:47     Titel:
  Antworten mit Zitat      
aha,
und wie sehen v(x) und w(y) konkret aus?
Sollen die
v(x)=[x^2,x^2,x^2,y^2,y^2]
w(y)=[x^2;4*x*y;6*y^2;4*x*y;y^2]
sein?

Dann muss Du eine Funktion schreiben, die als Parameter
nur x hat,
dann rechnest Du y aus,
danach erstellst Du die Vektoren
und lieferst dann das Skalarprodukt zurück.

Wenn Du in einer Funktion
function sErgebnis=Skalarprodukt(vOne,vTwo)
vOne=v(x)
.
.
.

sowas schreibst, dann überschreibst Du den Parameter vOne mit dem
Wert von v(x), das ist nicht Sinn der Sache.
Ausserdem ist in diesem Fall v(x) ja noch gar nicht definiert,
daher auch der Fehler.
Man muss die Reihenfolge beachten, in der man Variable definiert.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
W31dn3r
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2007, 15:51     Titel:
  Antworten mit Zitat      
du must zuerst die "Eingabevariablen" initialiesieren , errechnen oder an die Funktion übergeben.

Code:

vOne=v(x)
v(x)=[x^2,x^2,x^2,y^2,y^2]
 


dieses wäre falsch(falls v(x) nicht global ist), da du zuerst v(x) der Variable zuweist und erst im nächster Zeile v(x) selbst initialiesierst. Ich nehme an das v(x) das Vector ist ,welches von Benutzer eingegen werden soll? Dann muss dieser aus dem "Eingabefeld" ausgelesen werden oder als Funktionsparameter in die Funktion (vOne in diesem Fall) übergeben werden.

Anschließend must du deinen zweiten Vector (in diesem Fall vTwo) initialiesieren oder errechnen.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.11.2007, 16:44     Titel:
  Antworten mit Zitat      
Ich habe es jetzt so verstanden:
Du schreibst eine Funktion skalarprodukt.m:
Code:
function ret = skalarprodukt(x)
y=x-1;
v=[x^2 x^2 x^2 y^2 y^2];
w=[x^2 4*x*y 6*y^2 4*x*y y^2];
ret=dot(v,w);


und rufst die dann so auf:
skalarprodukt(2)

Ist das gemeint?
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sofie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2007, 14:25     Titel: ja
  Antworten mit Zitat      
Das das sollte so gemeint sein, nur leider würft er mir dann das ergebniss von y=x-1 vor die nase Sad((((
 
W31dn3r
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2007, 15:27     Titel:
  Antworten mit Zitat      
Wie rufst du den die Funktion auf? Die Funktion von nschlange funktioniert.

Erstelle doch mal ein m-file [skalarprodukt.m].
Kopiere die funktion von nschlange da rein und speichre diese ab.
Jetzt sollte man auf diese Funktin mit hilfe von skalarprodukt(x) [x z.B 2] zugreifen können.

ps. Falls du die Funktion mit hilfe von Run auszuführen versucht. Dann wirst du ganz klar fehlermeldung erhalten...
Private Nachricht senden Benutzer-Profile anzeigen
 
Sofie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2007, 15:55     Titel:
  Antworten mit Zitat      
Ok es funktioniert jetzt. Hatte noch v(x) und W(y) geschrieben hab das jetzt in v,w geändert. Danke für die Hilfe:))))))
 
matlab-noob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2007, 01:01     Titel: Wie würde das programm dann komplet getippt aussehen???
  Antworten mit Zitat      
Könntet ihr das sozusagen so komplet von anfang bis ende aufschreiben habe kein plan wie ich das machen soll hier ist die aufgabe

a) Programmieren Sie mit Hilfe des function-Befehls eine Matlab-Funktion namens
skalarprodukt.m, die das Skalarprodukt der Vektoren
v(x) =[x2, x2, x2, y2, y2],
w(x) =[x2, 4xy, 6y2, 4xy, y2]^T
berechnet. Dabei sei y = 1-x. Die Zahl x €(element) 2 R(reele zahlen) soll vom Benutzer beim Aufruf der Funktion eingegeben werden.

b) Rufen Sie Ihre Funktion für folgende Werte von x auf:
x = Pie, x = 10Pie, x = 100Pie, x = 1000Pie, x = 10000Pie, x = 100000Pie,
Was erhalten Sie als Ergebnis? (Schreiben Sie ein kleines Programm namens -
skalarprodukteval.m, das die Funktion skalarprodukt.m mit den vorgegebenen
x-Werten aufruft.)
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.