<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: elimination code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 26 Jul 2008 23:01:33 GMT</pubDate>
    <description>DZone Snippets: elimination code</description>
    <item>
      <title>Gaussian Elimination in C</title>
      <link>http://snippets.dzone.com/posts/show/4874</link>
      <description>This is a simple implementation of the &lt;a href="http://en.wikipedia.org/wiki/Gaussian_elimination"&gt;Gaussian Elimination&lt;/a&gt; algorithm for solving n linear equations with n unknowns.&lt;br /&gt;&lt;br /&gt;Further explanation is given &lt;a href="http://compprog.wordpress.com/2007/12/11/gaussian-elimination/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int n;&lt;br /&gt;float a[10][11];&lt;br /&gt;&lt;br /&gt;void forwardSubstitution() {&lt;br /&gt;	int i, j, k, max;&lt;br /&gt;	float t;&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		max = i;&lt;br /&gt;		for (j = i + 1; j &lt; n; ++j)&lt;br /&gt;			if (a[j][i] &gt; a[max][i])&lt;br /&gt;				max = j;&lt;br /&gt;		&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j) {&lt;br /&gt;			t = a[max][j];&lt;br /&gt;			a[max][j] = a[i][j];&lt;br /&gt;			a[i][j] = t;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		for (j = n; j &gt;= i; --j)&lt;br /&gt;			for (k = i + 1; k &lt; n; ++k)&lt;br /&gt;				a[k][j] -= a[k][i]/a[i][i] * a[i][j];&lt;br /&gt;&lt;br /&gt;/*		for (k = 0; k &lt; n; ++k) {&lt;br /&gt;			for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;				printf("%.2f\t", a[k][j]);&lt;br /&gt;			printf("\n");&lt;br /&gt;		}*/&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void reverseElimination() {&lt;br /&gt;	int i, j;&lt;br /&gt;	for (i = n - 1; i &gt;= 0; --i) {&lt;br /&gt;		a[i][n] = a[i][n] / a[i][i];&lt;br /&gt;		a[i][i] = 1;&lt;br /&gt;		for (j = i - 1; j &gt;= 0; --j) {&lt;br /&gt;			a[j][n] -= a[j][i] * a[i][n];&lt;br /&gt;			a[j][i] = 0;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void gauss() {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	forwardSubstitution();&lt;br /&gt;	reverseElimination();&lt;br /&gt;	&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			printf("%.2f\t", a[i][j]);&lt;br /&gt;		printf("\n");&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	FILE *fin = fopen("gauss.in", "r");&lt;br /&gt;	fscanf(fin, "%d", &amp;n);&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			fscanf(fin, "%f", &amp;a[i][j]);&lt;br /&gt;	fclose(fin);&lt;br /&gt;	&lt;br /&gt;	gauss();&lt;br /&gt;	&lt;br /&gt;	return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 11 Dec 2007 13:46:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4874</guid>
      <author>scvalex (Alexandru Scvortov)</author>
    </item>
    <item>
      <title>Gaussian Elimination in C</title>
      <link>http://snippets.dzone.com/posts/show/4873</link>
      <description>This is a simple implementation of the &lt;a href="http://en.wikipedia.org/wiki/Gaussian_elimination"&gt;Gaussian Elimination&lt;/a&gt; algorithm for solving n linear equations with n unknowns.&lt;br /&gt;&lt;br /&gt;Further explanation is given &lt;a href="http://compprog.wordpress.com/2007/12/11/gaussian-elimination/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int n;&lt;br /&gt;float a[10][11];&lt;br /&gt;&lt;br /&gt;void forwardSubstitution() {&lt;br /&gt;	int i, j, k, max;&lt;br /&gt;	float t;&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		max = i;&lt;br /&gt;		for (j = i + 1; j &lt; n; ++j)&lt;br /&gt;			if (a[j][i] &gt; a[max][i])&lt;br /&gt;				max = j;&lt;br /&gt;		&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j) {&lt;br /&gt;			t = a[max][j];&lt;br /&gt;			a[max][j] = a[i][j];&lt;br /&gt;			a[i][j] = t;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		for (j = n; j &gt;= i; --j)&lt;br /&gt;			for (k = i + 1; k &lt; n; ++k)&lt;br /&gt;				a[k][j] -= a[k][i]/a[i][i] * a[i][j];&lt;br /&gt;&lt;br /&gt;/*		for (k = 0; k &lt; n; ++k) {&lt;br /&gt;			for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;				printf("%.2f\t", a[k][j]);&lt;br /&gt;			printf("\n");&lt;br /&gt;		}*/&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void reverseElimination() {&lt;br /&gt;	int i, j;&lt;br /&gt;	for (i = n - 1; i &gt;= 0; --i) {&lt;br /&gt;		a[i][n] = a[i][n] / a[i][i];&lt;br /&gt;		a[i][i] = 1;&lt;br /&gt;		for (j = i - 1; j &gt;= 0; --j) {&lt;br /&gt;			a[j][n] -= a[j][i] * a[i][n];&lt;br /&gt;			a[j][i] = 0;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void gauss() {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	forwardSubstitution();&lt;br /&gt;	reverseElimination();&lt;br /&gt;	&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			printf("%.2f\t", a[i][j]);&lt;br /&gt;		printf("\n");&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	FILE *fin = fopen("gauss.in", "r");&lt;br /&gt;	fscanf(fin, "%d", &amp;n);&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			fscanf(fin, "%f", &amp;a[i][j]);&lt;br /&gt;	fclose(fin);&lt;br /&gt;	&lt;br /&gt;	gauss();&lt;br /&gt;	&lt;br /&gt;	return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 11 Dec 2007 13:46:02 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4873</guid>
      <author>scvalex (Alexandru Scvortov)</author>
    </item>
    <item>
      <title>Gaussian Elimination in C</title>
      <link>http://snippets.dzone.com/posts/show/4872</link>
      <description>This is a simple implementation of the &lt;a href="http://en.wikipedia.org/wiki/Gaussian_elimination"&gt;Gaussian Elimination&lt;/a&gt; algorithm for solving n linear equations with n unknowns.&lt;br /&gt;&lt;br /&gt;Further explanation is given &lt;a href="http://compprog.wordpress.com/2007/12/11/gaussian-elimination/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int n;&lt;br /&gt;float a[10][11];&lt;br /&gt;&lt;br /&gt;void forwardSubstitution() {&lt;br /&gt;	int i, j, k, max;&lt;br /&gt;	float t;&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		max = i;&lt;br /&gt;		for (j = i + 1; j &lt; n; ++j)&lt;br /&gt;			if (a[j][i] &gt; a[max][i])&lt;br /&gt;				max = j;&lt;br /&gt;		&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j) {&lt;br /&gt;			t = a[max][j];&lt;br /&gt;			a[max][j] = a[i][j];&lt;br /&gt;			a[i][j] = t;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		for (j = n; j &gt;= i; --j)&lt;br /&gt;			for (k = i + 1; k &lt; n; ++k)&lt;br /&gt;				a[k][j] -= a[k][i]/a[i][i] * a[i][j];&lt;br /&gt;&lt;br /&gt;/*		for (k = 0; k &lt; n; ++k) {&lt;br /&gt;			for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;				printf("%.2f\t", a[k][j]);&lt;br /&gt;			printf("\n");&lt;br /&gt;		}*/&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void reverseElimination() {&lt;br /&gt;	int i, j;&lt;br /&gt;	for (i = n - 1; i &gt;= 0; --i) {&lt;br /&gt;		a[i][n] = a[i][n] / a[i][i];&lt;br /&gt;		a[i][i] = 1;&lt;br /&gt;		for (j = i - 1; j &gt;= 0; --j) {&lt;br /&gt;			a[j][n] -= a[j][i] * a[i][n];&lt;br /&gt;			a[j][i] = 0;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void gauss() {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	forwardSubstitution();&lt;br /&gt;	reverseElimination();&lt;br /&gt;	&lt;br /&gt;	for (i = 0; i &lt; n; ++i) {&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			printf("%.2f\t", a[i][j]);&lt;br /&gt;		printf("\n");&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	FILE *fin = fopen("gauss.in", "r");&lt;br /&gt;	fscanf(fin, "%d", &amp;n);&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		for (j = 0; j &lt; n + 1; ++j)&lt;br /&gt;			fscanf(fin, "%f", &amp;a[i][j]);&lt;br /&gt;	fclose(fin);&lt;br /&gt;	&lt;br /&gt;	gauss();&lt;br /&gt;	&lt;br /&gt;	return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 11 Dec 2007 13:45:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4872</guid>
      <author>scvalex (Alexandru Scvortov)</author>
    </item>
  </channel>
</rss>
