Avatar billede hha9907 Nybegynder
31. marts 2007 - 10:54 Der er 8 kommentarer og
1 løsning

Løs ligning med 2 ubekendte

Hej

Jeg skal have løst to ligninger med to ubekendte i vba.

Ligningen:

Z=x(1-p)/p
Y=x(1-p)/(p^2)

Hvor Z og Y er givet. x skal være et positiv hel tal og p skal være 0< p<1.

I nogle tilfælde vil det ikke kunne lade sig gøre, her må x rundes af til nærmeste heltal og p skal så regnes ud på ny, så resultatet bliver så præsic som muligt, men det kan ikke altid lade sig gøre at det bliver præcis. Man skal altså komme så tæt på som muligt under betingelserne.

et eksempel:

1,777=x(1-p)/p
1,9726=x(1-p)/(p^2)

Her vil x være lig med 17 og p=0,900808 efter afrunding af x.

Det kan også være at det er en umulig opgave.
Avatar billede rynke10 Novice
02. april 2007 - 11:20 #1
Jeg laver lige en løsning. Der er flere muligheder, jeg vender lige tilbage senere på dagen
Avatar billede rynke10 Novice
02. april 2007 - 16:21 #2
Jeg ved ikke om det er nøjagtigt nok, jeg har kun brugt den første ligning og indsat den afrundede værdi af x. Indsætter man i den anden ligning, får man en andengrads ligning og pludselig 2 resultater, så er der lidt mere at vælge imellem. Man kan naturligvis vælge den af de 2 løsninger der ligger tættest på den man udregnede i første ligning og så tage gennemsnittet af de to resultater.
Udregningerne har jeg lavet her
http://www.suzhou.dk/test/ligning.jpg
Avatar billede rynke10 Novice
02. april 2007 - 16:22 #3
I VB har jeg lavet 8 text bokse og en knap, så kan følgende kode klare det sådan ca.

Option Explicit

Private Sub Command1_Click()
  Dim a, b, p, first_p, first_x As Double
  Dim x As Integer

  a = Text1.Text
  b = Text2.Text
'udregner
  first_p = a / b
  first_x = (a * first_p) / (1 - first_p)
  x = Round(first_x)
  p = x / (x + a)
'udskriver
  Text5.Text = first_p
  Text6.Text = first_x
  Text7.Text = x
  Text8.Text = p

End Sub
Avatar billede rynke10 Novice
02. april 2007 - 16:25 #4
Hov, jeg var hurtig nok, text3.text og text4.text bruger jeg ikke, dem ville jeg vist skrive noget mellemregning i, men det blev det ikke til.
Avatar billede hha9907 Nybegynder
04. april 2007 - 14:35 #5
det ser spændende ud. Jeg har desværre ikke mulighed for at tjekke løsning før engang i weekenden, men mange tak for hjælpen
Avatar billede rynke10 Novice
04. april 2007 - 16:18 #6
Den rammer naturligvis ikke 100%, men sig til hvis det bliver nødvendigt at udregne begge ligninger og så tilnærme værdien mellem de 2.
Hvor tæt på det bliver, afhænger naturligvis af hvor meget der afrundes.
Avatar billede hha9907 Nybegynder
10. april 2007 - 17:19 #7
Det virker fint, mange tak for hjælpen
Avatar billede hha9907 Nybegynder
10. april 2007 - 17:20 #8
Det virker fint. Mange tak for hjælpen
Avatar billede rynke10 Novice
11. april 2007 - 04:25 #9
Takker for point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester