Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic hazır kodlar » yöneylemde simplex metodu programı
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

LİRA() Fonksiyonu

Yazar: Webmaster

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 12304
Yayın Tar:13.12.2013
Yazar : alp6161
Hit :2277

Bu Yazarın Yazıları Sadece bu yazarın örnek kod göster
Bu Yazıyı Tavsiye Et

program temel değişkenlerin bilinmesine dayanıyor, istenirse maximum ve minimum değerler içinde çözüm üretilebilir. bu projeyi ödev içIn yaptığımdan max. ve min. eklemedim.

tam 5 tane listbox var, bunlar
matrisin yazılı olduğu
değişkenlerin katsayısı
sonuç matrisi (<b> diye bilinir)
temel değişkenlerin katsayıları ([C] diye bilinir)
temel değişkenlerin sonuç matrisindeki indexi ( buna neden ihtiyacımız var, örneğIn 3 değişkenimiz olsun x1,x2,x3, bunların yanına sonuç matrisimizde s1,s2,s3 ekleneceğinden ihtiyacımız var)


simplex metodun aynısını yapan programın kodu,


Public Class Form1
Private sonucmat(,) As Double
Private matC(,) As Double
Private index() As Integer
Private matb(,) As Double
Private matrixB(,) As Double
Private matA(,) As Double
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox1.Items.Add(CDbl(TextBox1.Text))
TextBox1.Text = ""
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox2.Items.Add(CDbl(TextBox2.Text))
TextBox2.Text = ""
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
ListBox3.Items.Add(CDbl(TextBox3.Text))
TextBox3.Text = ""
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
ListBox4.Items.Add(CDbl(TextBox6.Text))
TextBox6.Text = ""
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
ListBox5.Items.Add(CDbl(TextBox7.Text))
TextBox7.Text = ""
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click


Label5.Text = ""
Label4.Text = ""
Label3.Text = ""



Label3.Text &= "OPTİMAL ÇÖZÜM ;" & vbNewLine
Label3.Text &= vbNewLine
Dim matC(0, ListBox1.Items.Count - 1) As Double
For i = 0 To ListBox1.Items.Count - 1
matC(0, i) = Val(ListBox1.Items(i))
Next
Dim matb(ListBox2.Items.Count - 1, 0) As Double
For i = 0 To ListBox2.Items.Count - 1
matb(i, 0) = Val(ListBox2.Items(i))
Next
Dim a As Integer = 0
Dim matA(CInt(TextBox4.Text) - 1, CInt(TextBox5.Text) - 1) As Double
For i = 0 To Val(TextBox4.Text) - 1
For j = 0 To Val(TextBox5.Text) - 1
matA(i, j) = ListBox3.Items(a)
a += 1
Next
Next
a = 0
Dim index(ListBox4.Items.Count - 1) As Integer
For i = 0 To ListBox4.Items.Count - 1
index(i) = Val(ListBox4.Items(i))
Next
'''''''''''''''''''''''''''''
Dim k As Integer = 0
ReDim matrixB(CInt(TextBox4.Text) - 1, ListBox1.Items.Count - 1)
For i = 0 To ListBox1.Items.Count - 1
For j = 0 To CInt(TextBox4.Text) - 1
If index(k) <= CInt(TextBox5.Text) Then
matrixB(j, i) = matA(j, index(k) - 1)
Else
matrixB(index(k) - CInt(TextBox5.Text) - 1, i) = 1
End If
Next
k += 1
Next
Label4.Text &= "B matrisi" & vbNewLine
For i = 0 To ListBox1.Items.Count - 1
For j = 0 To CInt(TextBox4.Text) - 1
Label4.Text &= matrixB(j, i) & " "
Next
Label4.Text &= vbNewLine
Next
''''''''''''''''''''''''
Dim x(CInt(TextBox4.Text) - 1, ListBox1.Items.Count - 1) As Double
For i = 0 To CInt(TextBox4.Text) - 1
For j = 0 To ListBox1.Items.Count - 1
If i = j Then
x(i, j) = 1
Else
x(i, j) = 0
End If
Next
Next
'''''''''
Dim d, l As Double
For i = 0 To CInt(TextBox4.Text) - 1
d = matrixB(i, i)
For j = 0 To ListBox1.Items.Count - 1
matrixB(i, j) = matrixB(i, j) / d
x(i, j) = x(i, j) / d
Next
For a = 0 To CInt(TextBox4.Text) - 1
If a <> i Then
l = matrixB(a, i)
For j = 0 To ListBox1.Items.Count - 1
matrixB(a, j) = matrixB(a, j) - (matrixB(i, j) * l)
x(a, j) = x(a, j) - (x(i, j) * l)
Next
End If
Next
Next
'''''''''''''''''''''''''''''''''
Label5.Text &= "B matrisinin tersi" & vbNewLine
For i = 0 To CInt(TextBox4.Text) - 1
For j = 0 To ListBox1.Items.Count - 1
Label5.Text &= x(i, j) & " "
Next
Label5.Text &= vbNewLine
Next
Dim sonucmat(CInt(TextBox4.Text), CInt(TextBox5.Text) + ListBox2.Items.Count) As Double
Dim aramat(0, CInt(TextBox4.Text) - 1) As Double
For j = 0 To CInt(TextBox4.Text) - 1
For k = 0 To ListBox1.Items.Count - 1
aramat(0, j) += matC(0, k) * x(k, j)
Next
Next
Dim kats(ListBox5.Items.Count - 1) As Double
For i = 0 To ListBox5.Items.Count - 1
kats(i) = ListBox5.Items(i)
Next
a = 0
For i = 0 To CInt(TextBox5.Text) - 1
For j = 0 To CInt(TextBox4.Text) - 1
sonucmat(0, i) += aramat(0, j) * matA(j, i)
Next
sonucmat(0, i) = sonucmat(0, i) - kats(i)
Next
For i = 1 To CInt(TextBox5.Text)
Label3.Text &= "x" & i & " "
Next
''''''''''''''''''''''''' birim s matrisi aç!!!!!!
Dim matS(ListBox2.Items.Count - 1, ListBox2.Items.Count - 1) As Double
For i = 0 To ListBox2.Items.Count - 1
For j = 0 To ListBox2.Items.Count - 1
If i = j Then
matS(i, j) = 1
Else
matS(i, j) = 0
End If
Next
Next
For i = 0 To ListBox2.Items.Count - 1
For j = 0 To CInt(TextBox4.Text) - 1
sonucmat(0, i + CInt(TextBox5.Text)) += aramat(0, j) * matS(j, i)
Next
Next
For i = 1 To ListBox2.Items.Count
Label3.Text &= "s" & i & " "
Next
For j = 0 To (TextBox4.Text) - 1
sonucmat(0, CInt(TextBox5.Text) + ListBox2.Items.Count) += aramat(0, j) * matb(j, 0)
Next
Label3.Text &= "RHS"
Label3.Text &= vbNewLine
For i = 0 To CInt(TextBox4.Text) - 1
For j = 0 To CInt(TextBox5.Text) - 1
For k = 0 To ListBox1.Items.Count - 1
sonucmat(i + 1, j) += x(i, k) * matA(k, j)
Next
Next
Next
For i = 0 To CInt(TextBox4.Text) - 1
For j = 0 To ListBox2.Items.Count - 1
For k = 0 To (TextBox4.Text) - 1
sonucmat(i + 1, j + CInt(TextBox5.Text)) += x(i, k) * matS(k, j)
Next
Next
Next
For i = 0 To CInt(TextBox4.Text) - 1
For j = 0 To ListBox2.Items.Count - 1
sonucmat(i + 1, CInt(TextBox5.Text) + ListBox2.Items.Count) += x(i, j) * matb(j, 0)
Next
Next
For i = 0 To CInt(TextBox4.Text)
For j = 0 To CInt(TextBox5.Text) + ListBox2.Items.Count
Label3.Text &= Format(sonucmat(i, j), "0.00") & " "
Next
Label3.Text &= vbNewLine
Next
Dim enb As Double = 0
Dim h As Integer
Dim enk As Double = 0
For a = 0 To CInt(TextBox5.Text) + ListBox2.Items.Count - 1
If sonucmat(0, a) < enk Then
h = a + 1
Else
End If
Next
If RadioButton1.Checked Then
For i = 0 To CInt(TextBox5.Text) + ListBox2.Items.Count - 1
If sonucmat(0, i) < -1 Then
If h <= CInt(TextBox5.Text) Then
MessageBox.Show("Lütfen temel değişkenleri değiştirerek tekrar deneyiniz" & vbNewLine & "Eklenmesi içIn önerilen temel değişken x" & h, "ÇÖZÜM UYGUN DEĞİL", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)
Else
h = h - CInt(TextBox5.Text)
MessageBox.Show("Lütfen temel değişkenleri değiştirerek tekrar deneyiniz" & vbNewLine & "Eklenmesi içIn önerilen temel değişken s" & h, "ÇÖZÜM UYGUN DEĞİL", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)
End If
Else
End If
Next
End If
Dim y As Integer
For a = 0 To CInt(TextBox5.Text) + ListBox2.Items.Count - 1
If sonucmat(0, a) > enb Then
y = a + 1
Else
End If
Next
If RadioButton2.Checked Then
For i = 0 To CInt(TextBox5.Text) + ListBox2.Items.Count - 1
If sonucmat(0, i) > 0 Then
If y <= CInt(TextBox5.Text) Then
MessageBox.Show("Lütfen temel değişkenleri değiştirerek tekrar deneyiniz" & vbNewLine & "Eklenmesi içIn önerilen temel değişken x" & y, "ÇÖZÜM UYGUN DEĞİL", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)
Else
y = y - CInt(TextBox5.Text)
MessageBox.Show("Lütfen temel değişkenleri değiştirerek tekrar deneyiniz" & vbNewLine & "Eklenmesi içIn önerilen temel değişken s" & y, "ÇÖZÜM UYGUN DEĞİL", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)
End If
End If
Next
End If
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
ListBox1.Items.Clear()
ListBox2.Items.Clear()
ListBox3.Items.Clear()
ListBox4.Items.Clear()
ListBox5.Items.Clear()
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
ListBox4.Items.Clear()
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
ListBox1.Items.Clear()
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
Label3.Text = ""
Label4.Text = ""
Label5.Text = ""
End Sub
End Class



algoritmasını araştırarak bulabilirsiniz, gayet basit bir algoritmadır. bu yazıyı okyorsanız muhtemelen böyle bir proje aldınız :) eğer kodda detaylıca anlatmamı istediğiniz yerler varsa cevaplamaktan zevk duyarım. özellikle döngülerde ne yapıldığı.

saygılarımla .......




Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin