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

Besseli Integrieren

 

sawyer_ma
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2016, 16:51     Titel: Besseli Integrieren
  Antworten mit Zitat      
Hallo alle zusammen,

ich habe ein kleines Matlab Problem und bin mir nicht sicher ob ich das so richtig mache.
Ziel ist es die Formel („Bild“) in Matlab richtig einzugeben:

Matlab Code:
Code:
%
k0 = 2;
WeffF = 0.0169;
Leff =0.0271;


syms x;
a = 0;
b = pi;

   
fun2=(((sin(k0.*(WeffF./2))*cos(x)))./cos(x))*sin(x).^3*besseli(0,x).*k0.*Leff.*sin(x)
           
G12 = (1./(120*pi.^2)) * int(fun2,a,b)


%Als Ergebnis kommt:

G12 =
 
(15210334829879*int((38067966586275098715165412854559*sin(x)^4*besseli(0, x))/41538374868278621028243970633760768, x, 0, pi))/18014398509481984

 



Nun ist die Frage ob das so richtig geschrieben ist, da im Ergebnis immer noch bessel steht???

Und da ist noch die Frage wie ich das Ergebnis noch in Real und Imaginär Teil trennen kann??


Vielen Dank für eure Hilfe.

Bild.png
 Beschreibung:

Download
 Dateiname:  Bild.png
 Dateigröße:  80.44 KB
 Heruntergeladen:  472 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.06.2016, 20:41     Titel:
  Antworten mit Zitat      
Hallo,

angesichts der Komplexität der zu integrierenden Funktion ist es sehr unwahrscheinlich, dass es eine Stammfunktion gibt. Dann kann MATLAB halt auch keine finden, um das symbolisch auszuwerten.

Wie wäre es, das Integral numerisch mit integral zu bestimmen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2016, 10:24     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort. Ich habe das nun gleich mal versucht. Jedoch bekomme ich jetzt Fehlermeldungen die ich mir nich erklären kann.

Code:

syms x;
a = 0;
b = pi;


        fun1 = @(x) ((sin(k0.*(WeffF./2)*cos(x)))./cos(x)).^2 * sin(x).^3

        G1 = integral(fun1,a,b)./(120.*pi)
   

 



fun1 =

@(x)((sin(k0.*(WeffF./2)*cos(x)))./cos(x)).^2*sin(x).^3

Error using *
Inner matrix dimensions must agree.

Error in Patch_Calculation>@(x)((sin(k0.*(WeffF./2)*cos(x)))./cos(x)).^2*sin(x).^3

Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);

Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);

Error in integral (line 8Cool
Q = integralCalc(fun,a,b,opstruct);

Error in Patch_Calculation (line 65)
G1 = integral(fun1,a,b)./(120.*pi)



Was mache ich Falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2016, 10:33     Titel:
  Antworten mit Zitat      
Hallo,

in jedem Term wo die Variable x vorkommt musst du .-weise operieren --> siehe Beispiel

Code:

x=0:0.01:1;
cos(x)*sin(x)
 


Error using *
Inner matrix dimensions must agree.

Code:

x=0:0.01:1;
cos(x).*sin(x)
 


keine Fehlermeldung - also auf das achten! Und überall wo ein konstanter Wert multipliziert/dividiert wird, kannst du auf die .-weise Operation verzichten

Liebe grüße,

Robert
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2016, 10:59     Titel:
  Antworten mit Zitat      
Vielen vielen Dank Smile jetzt funktioniert es Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2016, 13:22     Titel:
  Antworten mit Zitat      
Ok ich muss doch nochmal etwas nachfrage, da ich einfach nicht auf das korrekte Ergebnis komme.
Code:

fun2 = @(x) ((sin(((k0*W.*cos(x))/2)))./(cos(x))).^2.*sin(x).^3.*besseli(0,x).*(k0*Leff*sin(x))

G12 = - (1/(120*pi^2) * integral(fun2,a,b))

 


Das verlinkte Bild beinhaltet die ganze Formel mit dem Satz:

Jo is the Bessel’s function of first kind of order zero.

Das habe ich doch so richtig umgesetzt oder?

Bild.png
 Beschreibung:

Download
 Dateiname:  Bild.png
 Dateigröße:  80.44 KB
 Heruntergeladen:  452 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.06.2016, 14:38     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht liegt's daran?

besseli: Modified Bessel function of first Kind
besselj: Bessel function of first Kind

Ansonsten bitte alle Parameter und das erwartete Ergebnis angeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2016, 15:06     Titel:
  Antworten mit Zitat      
Das wäre der ganze Code. Im Anhang befindet sich ein Bild mit den Formeln.

Code:


%% Variablen

f = 10e9;
Er1 = 2.2;                  
Er2 = 1.00059;     %Luft              
h = 0.001588;                  
c0 = 299e6;          %Lichtgeschwindigkeit                                      
W = 0.01186;
Leff = 0.00906;
lambda0 = c0/f;      
lambda = lambda0/sqrt(Er2);
beta = ((2*pi)/(lambda));
alpha = 1.64;                    

%%
k0 = (alpha + 1i*beta)           %Ausbreitungskonstante

%% Berechnung

syms x;
a = 0;
b = pi;

fun1 = @(x) ((sin((k0*W.*cos(x))/2))./cos(x)).^2.*(sin(x)).^3
G1 = - integral(fun1,a,b)/(120*pi^2)


fun2 = @(x) ((sin(((k0*W.*cos(x))/2)))./(cos(x))).^2.*sin(x).^3.*besselj(0,x).*(k0*Leff*sin(x))
G12 = - (1/(120*pi^2) * integral(fun2,a,b))


B1 = ((W)/(120*lambda0))*(1-0.636*log(k0*h))*((h)/(lambda0))
 


Die Aufgabenstellung ist:

A microstrip antenna with overall dimensions of L = 0.906 cm (0.357 inches) and W = 1.186 cm (0.467 inches), substrate with height h = 0.1588 cm (0.0625 inches) and dielectric constant of εr = 2.2, is operating at 10 GHz.

Ergebnis der Aufgabenstellung:

G1 = 0.00157
G12 = 6.1683 × 10^-4


Meine Ergebnisse:

G1 =

0.0019 - 0.0000i

G12 =

0.0000 + 0.0015i

Vielen vielen Dank für eure Hilfe. Sehr nettes Forum hier Smile

Bildschirmfoto 2016-06-23 um 15.59.11.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2016-06-23 um 15.59.11.png
 Dateigröße:  201.85 KB
 Heruntergeladen:  509 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.06.2016, 21:03     Titel:
  Antworten mit Zitat      
Hallo,

ich erkenne keinen Fehler.

Ich habe es auch mal mit genauerer Angabe der Lichtgeschwindigkeit versucht, aber das machte keinen Unterschied.

Was mich verwundert: wieso jeweils das Minus vor den Ausdrücken?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2016, 08:30     Titel:
  Antworten mit Zitat      
Das mit dem Minus vor dem Ausdruck ist deshalb entstanden, da sonst mein G1 und G12 negativ waren. Ich weis nicht woher dieser Fehler kommt.

Irgendwo muss ich irgendwas falsch gemacht haben.

Die ganzen Informationen habe ich aus diesem Buch:

https://docs.google.com/file/d/0B7OQo6ncgyFjNUNUSjlrSUhZRGM/edit

Auf Seite 826 ist das Beispiel welches ich versucht habe nach zu bilden und auf Seite 823 ist die Formel für G12 wie auf Seite 821 die für G1.

Ich bedanke mich nochmals sehr für eure Hilfe. Tolles Forum hier
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2016, 09:06     Titel:
  Antworten mit Zitat      
Ich habe jetzt nochmal genau nach gelesen und bemerkt das ich eine Variable die k0 falsch definiert habe.

korrekt lautet diese:

Code:


und beta ist definiert als:

Code:

Er2 = 1.00056
lambda0 = c0/f;      
lambda = lambda0/sqrt(Er2);
beta = ((2*pi)/(lambda));
 


Wenn ich das so rechnen lasse dann bekomme ich tatsächlich den exakten Wert für G1 mit:

G1 = 0.001575549343439

das ist schon mal Prima Smile

Jedoch ist das G12 mit G12 = 0.001242957035353 immer noch falsch, was nun darauf hindeutet das ich irgendwas in der Funktion falsch geschrieben habe.

Code:

syms x;

a = 0;
b = pi;

fun2 = @(x) ((sin(((k0*W.*cos(x))/2)))./(cos(x))).^2.*sin(x).^3.*besselj(0,x).*(k0*Leff*sin(x));

G12  = (1/(120*pi^2) * integral(fun2,a,b))
 


Und das kann ja fast nurnoch an dem besselj liegen.
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2016, 09:12     Titel:
  Antworten mit Zitat      
Hallo,

bin im gleichen Moment auf das selbe gekommen wie du - und die Lösung für G2 ist:

Code:


das muss im bessel term stehen
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 75
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2016, 09:20     Titel:
  Antworten mit Zitat      
ro_mat hat Folgendes geschrieben:
Hallo,

bin im gleichen Moment auf das selbe gekommen wie du - und die Lösung für G2 ist:

Code:


das muss im bessel term stehen



Yeaha Smile sowas tolles. Vielen vielen Dank. Smile Smile Smile

Jetzt hast mir den Tag gerettet Smile

Nochmals vielen Dank an euch alle für die super Unterstützung!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.06.2016, 09:30     Titel:
  Antworten mit Zitat      
Hallo,

kleine Anmerkung noch:
Zitat:
Das mit dem Minus vor dem Ausdruck ist deshalb entstanden, da sonst mein G1 und G12 negativ waren. Ich weis nicht woher dieser Fehler kommt.


Meiner Meinung nach ist es keine Lösung, einfach ein Minus davor zu schreiben. Man sollte vielmehr der Ursache des Fehlers aufspüren.

Etwas gemein gesagt: wenn das Ergebnis 5 sein soll und aber 10 herauskommt, könnte ja jemand auf die Idee kommen, einfach 5 abzuziehen, damit das Ergebnis stimmt ;)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2016, 09:33     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich hab das Beispiel ohne Minus gerechnet und jetzt kommt das richtige auch raus --> Fehler gefunden!
Private Nachricht senden Benutzer-Profile anzeigen
 
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.