<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AB-WebLog.com&#187; Mathematik</title>
	<atom:link href="http://www.ab-weblog.com/de/schlagwort/mathematik/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ab-weblog.com/de</link>
	<description>Andreas Breitschopp</description>
	<lastBuildDate>Mon, 23 Nov 2015 08:51:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Formel-Parser für .NET</title>
		<link>http://www.ab-weblog.com/de/formel-parser-fuer-dotnet/</link>
		<comments>http://www.ab-weblog.com/de/formel-parser-fuer-dotnet/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 15:54:49 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=1</guid>
		<description><![CDATA[Für ein neues Softwareprojekt war ich auf der Suche nach einem guten Formel-Parser für .NET. Neben dem Parsen und Auswerten von Formeln mit allen gängigen mathematischen Funktionen (wie Sinus, Cosinus, Logarithmus, &#8230;) sollte es auch möglich sein Variablen in den &#8230; <a href="http://www.ab-weblog.com/de/formel-parser-fuer-dotnet/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Für ein neues Softwareprojekt war ich auf der Suche nach einem guten Formel-Parser für .NET.</p>
<p>Neben dem Parsen und Auswerten von Formeln mit allen gängigen mathematischen Funktionen (wie Sinus, Cosinus, Logarithmus, &#8230;) sollte es auch möglich sein Variablen in den Formeln zu verwenden.</p>
<p>Die beste Lösung, die ich fand, ist diese hier:<br />
<a href="http://www.lundin.info/mathparser.asp" target="_blank">http://www.lundin.info/mathparser.asp</a> (Englisch)</p>
<p>Die Verwendung ist sehr einfach; hier ein Beispiel-Code in C#:</p>
<pre class="brush: csharp; gutter: true">// Parser instanziieren
ExpressionParser parser = new ExpressionParser();

// Erstellen einer Hashtable für die Werte
Hashtable h = new Hashtable();

// Variablen und Werte zur Hashtable hinzufügen
h.Add("x", 1.ToString());
h.Add("y", 2.ToString());

// Parsen und Ergebnis holen
double result = parser.Parse("xcos(y)", h);</pre>
<p>Und für diejenigen, die Visual Basic .NET bevorzugen:</p>
<pre class="brush: vbnet; gutter: true">' Parser instanziieren
Dim parser As New ExpressionParser()

' Erstellen einer Hashtable für die Werte
Dim h As New Hashtable()

' Variablen und Werte zur Hashtable hinzufügen
h.Add("x", 1.ToString())
h.Add("y", 2.ToString())

' Parsen und Ergebnis holen
Dim result As Double
result = parser.Parse("xcos(y)", h)</pre>
<p>Es ist wichtig, dass die Werte dabei stets als String zur Hashtable der Variablen hinzugefügt werden. Der Grund dafür ist, dass diese intern einfach in die Formel eingefügt werden, bevor diese geparst wird &#8211; entsprechend müssen sie natürlich vom Typ String sein.</p>
<p>Die kostenlose Bibliothek is Open-Source und unter der LGPL lizensiert. Dadurch kann sie auch in kommerziellen Projekten eingesetzt werden, solange sie dynamisch als externe Bibliothek eingebunden wird.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/formel-parser-fuer-dotnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einfacher Sinus-Generator für .NET</title>
		<link>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/</link>
		<comments>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 12:08:56 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Sinus]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=125</guid>
		<description><![CDATA[In diesem Artikel möchte ich zeigen, wie man einen einfachen Sinus-Generator in .NET erstellen kann. Zunächst ein Quelltextausschnitt, danach erkläre ich, was es damit aufsich hat: const double frequency = 1000; const double amplitude = 20000; const long sampleRate = &#8230; <a href="http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In diesem Artikel möchte ich zeigen, wie man einen einfachen Sinus-Generator in .NET erstellen kann.</p>
<p>Zunächst ein Quelltextausschnitt, danach erkläre ich, was es damit aufsich hat:</p>
<pre class="brush: csharp; gutter: true">const double frequency	= 1000;
const double amplitude	= 20000;
const long sampleRate	= 44100;
const int durationSec	= 5;

long sampleCount = sampleRate * durationSec;

double timeStep = 1.0 / (double)sampleRate;

double time = 0;
int[] values = new int[sampleCount];
for (long i = 0; i &lt; sampleCount; i++) {
	values[i] = (int)(amplitude * Math.Sin(2 * Math.PI * frequency * time));
	time = time + timeStep;
}</pre>
<p>Gut, nun also ein paar Erklärungen:</p>
<ul>
<li>Zeilen 1-4: Einige Konstanten, die geändert werden können, um z. B. die Frequenz anzupassen.<br />
<em>Hinweis:</em> Die Frequenz kann maximal die Hälfte der Abtastrate betragen.</li>
<li>Zeile 6: Berechnung der Anzahl an Abtastpunkten.</li>
<li>Zeile 8: Berechnung der Zeit zwischen zwei Abtastpunkten.</li>
<li>Zeilen 10-11: Ein paar Variablen-Initialisierungen.</li>
<li>Zeilen 12-15: Hier wird schlussendlich der Wert für jeden Abtastpunkt berechnet.</li>
</ul>
<p>Und nun noch der entsprechende Quelltext für Visual Basic .NET:</p>
<pre class="brush: vbnet; gutter: true">const frequency as double		= 1000
const amplitude as double		= 20000
const sampleRate As Long		= 44100
const durationSec As Integer	= 5

Dim sampleCount As Long
sampleCount = sampleRate * durationSec

Dim timeStep As Double
timeStep = 1.0 / sampleRate

Dim time As Double = 0
Dim values(0 To sampleCount - 1) As Integer
For i As Long = 0 To sampleCount - 1
	values(i) = amplitude * Math.Sin(2 * Math.PI * frequency * time)
	time = time + timeStep
Next i</pre>
<p>Um das Ganze abzuspielen, kann man nun entweden einen API-Aufruf wie <em>PlaySound</em> (von <em>winmm.dll</em>) oder die Lösung <a title="Article about .NET sound class" href="http://www.codeproject.com/KB/audio-video/CPIAudio.aspx" target="_blank">dieses super Artikels</a> (Englisch) verwenden.</p>
<p>Haben Sie auch bereits einmal einen Sinus in .NET generieren müssen?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->