Group:  Microsoft Excel ยป microsoft.public.excel
Thread: Help required to solve a linear equation through excel

DotNetBag
.NET Development Newsgroups

HTVi
TV Discussion Newsgroups

Our Hot Pick: Rising Antivirus 2006 - Certified by TUV & Checkmark! Get 10% discount by entering this coupon code: ONDISCOUNT10
Rising Antivirus 2006

Help required to solve a linear equation through excel
souravroy1[ at ]rediffmail.com 19.08.2006 15:05:31
Hi all,
I am trying to write a program wich accepts to two arrays one of
coefficients and other of constants and solve it through Gauss
eliminatiion method, the function directly writes the solution in a
colum starting from the given cell
I am not able to trace the problem with the code. though I am new to
excel programming
Can someone help me

The code is as follows:-
Option Base 1
Sub solution(coefficient As Range, constants As Range, output As Range)
p = coefficient.Rows.Count
n = coefficient.coloums.Count
MsgBox ("HI")
Dim a(), R(), sol()
For v = 1 To p
For j = 1 To n
a(v, j) = coefficient(v, j).Value
Next j
R(v) = constants(v).Value
Next v
For i = 1 To n
check = 0
For j = 1 To n
If Not (a(i, j) = 0) Then check = 1
Next j
If check = 0 Then Count = Count + 1
If Not (R(i) = 0) Then
For d = 1 To n
e = a(i, d)
a(i, d) = a((p - Count), d)
a((p - Count), d) = e
Next d
End If
For k = 1 To i
For l = 1 To (i - 1)
coef = a(i, l)
For m = 1 To n
a(i, m) = a(i, m) - (coef * a(l, m))
Next m
R(i) = R(i) - (coef * R(l))
Next l
Next k
Next i
If ((p - Count) < n) Then
output.Value = " infinite solution"
Else
For c = n To 1
sol(c) = R(c)
For b = n To (c - 1)
sol(c) = sol(c) - (a(b, b) * sol(b))
Next b
Next c
End If
For ab = 1 To n
output.Cells(ab, 0) = sol(i)
Next ab
End Sub

thanks
Sourav

Re: Help required to solve a linear equation through excel
"Dana DeLouis" <ddelouis[ at ]bellsouth.net> 20.08.2006 00:15:59
Hi. Here's some initial thoughts.

[Quoted Text]
> n = coefficient.coloums.Count
n = coefficient.Columns.Count

> Dim a(), R(), sol()
Maybe something like this:

Dim a(), R(), Sol()

p = coefficient.Rows.Count
n = coefficient.Columns.Count

ReDim a(1 To p, 1 To n)
ReDim R(1 To p)
ReDim Sol(1 To p)

Now something like this should work...
> a(v, j) = coefficient(v, j).Value

If you are trying to solve linear equations, perhaps something like this
small example.

Sub Demo()
Dim M As Variant 'Coefficient Array
Dim RHS As Variant ' RHS Array

M = [A1:C3]
RHS = [E1:E3]
With WorksheetFunction
[G1:G3] = .MMult(.MInverse(M), RHS)
End With
End Sub

--
HTH. :>)
Dana DeLouis
Windows XP, Office 2003


<souravroy1[ at ]rediffmail.com> wrote in message
news:1155999931.553413.152870[ at ]75g2000cwc.googlegroups.com...
> Hi all,
> I am trying to write a program wich accepts to two arrays one of
> coefficients and other of constants and solve it through Gauss
> eliminatiion method, the function directly writes the solution in a
> colum starting from the given cell
> I am not able to trace the problem with the code. though I am new to
> excel programming
> Can someone help me
>
> The code is as follows:-
> Option Base 1
> Sub solution(coefficient As Range, constants As Range, output As Range)
> p = coefficient.Rows.Count
> n = coefficient.coloums.Count
> MsgBox ("HI")
> Dim a(), R(), sol()
> For v = 1 To p
> For j = 1 To n
> a(v, j) = coefficient(v, j).Value
> Next j
> R(v) = constants(v).Value
> Next v
> For i = 1 To n
> check = 0
> For j = 1 To n
> If Not (a(i, j) = 0) Then check = 1
> Next j
> If check = 0 Then Count = Count + 1
> If Not (R(i) = 0) Then
> For d = 1 To n
> e = a(i, d)
> a(i, d) = a((p - Count), d)
> a((p - Count), d) = e
> Next d
> End If
> For k = 1 To i
> For l = 1 To (i - 1)
> coef = a(i, l)
> For m = 1 To n
> a(i, m) = a(i, m) - (coef * a(l, m))
> Next m
> R(i) = R(i) - (coef * R(l))
> Next l
> Next k
> Next i
> If ((p - Count) < n) Then
> output.Value = " infinite solution"
> Else
> For c = n To 1
> sol(c) = R(c)
> For b = n To (c - 1)
> sol(c) = sol(c) - (a(b, b) * sol(b))
> Next b
> Next c
> End If
> For ab = 1 To n
> output.Cells(ab, 0) = sol(i)
> Next ab
> End Sub
>
> thanks
> Sourav
>


Home | Search | Terms | Imprint | Contact
Newsgroups Reader - provided by WiredBox.Net