vb.net解方程 VB解方程

VB解方程

解一元一次方程:

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)原州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

設(shè)置4個(gè)文本框,分別代表一元一次方程中的參數(shù)k,b,x,y

分別命名txtk,txtb,txtx,txty.計(jì)算按鈕命名為cmdCalc。

在代碼窗口里粘貼如下代碼:

Private Sub cmdCalc_Click()

Dim k, b As Long

k = txtk.Text

b = txtb.Text

If txtx.Text = "x" Then

MsgBox "x的值為:" (txty.Text - b) / k

ElseIf txty.Text = "y" Then

MsgBox "y的值為:" k * txtx.Text + b

End If

End Sub

計(jì)算時(shí)求x則在txtx那里輸入一個(gè)x,

求y則在txty那里輸入一個(gè)y,

在各文本框中輸入?yún)?shù),

然后按下按鈕,

就有提示框彈出,顯示結(jié)果。

一元二次方程:

privat sub command1_click()

dim a,b,c,x1,x2,d as sigle

a=val(textl.text)

b=val(text2.text)

c=val(text3.text)

d=b^2-4*a*c

if d0 then

x1=(-b+sqr(d))/(2*a)

x2=(-b-sqr(d))/(2*a)

else if d=0 then

x1=(-b/2*a)

x2=x1

else msgbox"方程沒有實(shí)根"

end if

text4.text="x1=" x1 "" "x2=" x2

end sub

sub min(byref a() as integer)

dim i,j as interger

for i=1 to 9

for j=i+1 to 10

if a a(i)a(j) then

t=a(j)

a(i)=a(j)

a(j)=t

end if

next

next

end sub

private sub command_(click)

dim b(1 to 10) as interger

dim a(1 to 10) as interger

randomize

for i=1 to 10

a(i)=int(rnd*90)+10

list1.additem a(i)

b(i)=int(rnd*90)+ 10

list2.additem b(i)

next

call min(a)

call min(b)

if a(1)b(1) then

m=a(1)

else

m=b(1)

end if

text1.text="A,B種的最小值:" vbcrlf m

end sub

一元三次方程:

針對(duì)方程"ax^3+bx^2+cx+d=0"的求根程序。

控件只需一個(gè)Command1,結(jié)果顯示在“立即”中。

代碼如下。(參考)

========================

Private Sub Command1_Click()

Dim x1r As Double, x1i As Double, x2r As Double, x2i As Double, x3r As Double, x3i As Double

Dim ret As String

Const eq = "ax^3+bx^2+cx+d=0"

a = InputBox("請(qǐng)輸入a", eq)

b = InputBox("請(qǐng)輸入b", eq)

c = InputBox("請(qǐng)輸入c", eq)

d = InputBox("請(qǐng)輸入d", eq)

ret = CubicEquation(a, b, c, d, x1r, x1i, x2r, x2i, x3r, x3i) '5x^3+4x^2+3x-12=0

Debug.Print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" ret

Debug.Print x1r; " + "; x1i; " i"

Debug.Print x2r; " + "; x2i; " i"

Debug.Print x3r; " + "; x3i; " i"

End Sub

Private Function CubicEquation _

(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal d As Double, _

x1r As Double, x1i As Double, x2r As Double, x2i As Double, x3r As Double, x3i As Double) As String

'Cubic equation(v2.2), coded by btef (please let this line remain)

Dim e As Double, f As Double, g As Double, h As Double, delta As Double

Dim r As Double, sita As Double, pi As Double, rr As Double, ri As Double

If a = 0 Then

CubicEquation = "Not a cubic equation: a = 0"

Exit Function

End If

'pi = 3.14159265358979

pi = 4 * Atn(1)

b = b / a 'simplify to a=1: x^3+bx^2+cx+d=0

c = c / a

d = d / a

e = -b ^ 2 / 3 + c 'substitute x=y-b/3: y^3+ey+f=0

f = (2 * b ^ 2 - 9 * c) * b / 27 + d

If e = 0 And f = 0 Then

x1r = -b / 3

x2r = x1r

x3r = x1r

CubicEquation = "3 same real roots:"

ElseIf e = 0 Then 'need to deal with e = 0, or it will cause z = 0 later.

r = -f 'y^3+f=0, y^3=-f

r = Cur(r)

x1r = r - b / 3 'a real root

If r 0 Then 'r never = 0 since g=f/2, f never = 0 there

sita = 2 * pi / 3

x2r = r * Cos(sita) - b / 3

x2i = r * Sin(sita)

Else

sita = pi / 3

x2r = -r * Cos(sita) - b / 3

x2i = -r * Sin(sita)

End If

x3r = x2r

x3i = -x2i

CubicEquation = "1 real root and 2 image roots:"

Else 'substitute y=z-e/3/z: (z^3)^2+fz^3-(e/3)^3=0, z^3=-g+sqr(delta)

g = f / 2 '-q-sqr(delta) is ignored

h = e / 3

delta = g ^ 2 + h ^ 3

If delta 0 Then

r = Sqr(g ^ 2 - delta)

sita = Argument(-g, Sqr(-delta)) 'z^3=r(con(sita)+isin(sita))

r = Cur(r)

rr = r - h / r

sita = sita / 3 'z1=r(cos(sita)+isin(sita))

x1r = rr * Cos(sita) - b / 3 'y1=(r-h/r)cos(sita)+i(r+h/r)sin(sita), x1=y1-b/3

sita = sita + 2 * pi / 3 'no image part since r+h/r = 0

x2r = rr * Cos(sita) - b / 3

sita = sita + 2 * pi / 3

x3r = rr * Cos(sita) - b / 3

CubicEquation = "3 real roots:"

Else 'delta = 0

r = -g + Sqr(delta)

r = Cur(r)

rr = r - h / r

ri = r + h / r

If ri = 0 Then

CubicEquation = "3 real roots:"

Else

CubicEquation = "1 real root and 2 image roots:"

End If

x1r = rr - b / 3 'a real root

If r 0 Then 'r never = 0 since g=f/2, f never = 0 there

sita = 2 * pi / 3

x2r = rr * Cos(sita) - b / 3

x2i = ri * Sin(sita)

Else 'r 0

sita = pi / 3

x2r = -rr * Cos(sita) - b / 3

x2i = -ri * Sin(sita)

End If

x3r = x2r

x3i = -x2i

End If

End If

End Function

Private Function Cur(v As Double) As Double

If v 0 Then

Cur = -(-v) ^ (1 / 3)

Else

Cur = v ^ (1 / 3)

End If

End Function

Private Function Argument(a As Double, b As Double) As Double

Dim sita As Double, pi As Double

'pi = 3.14159265358979

pi = 4 * Atn(1)

If a = 0 Then

If b = 0 Then

Argument = pi / 2

Else

Argument = -pi / 2

End If

Else

sita = Atn(Abs(b / a))

If a 0 Then

If b = 0 Then

Argument = sita

Else

Argument = -sita

End If

ElseIf a 0 Then

If b = 0 Then

Argument = pi - sita

Else

Argument = pi + sita

End If

End If

End If

End Function

二元一次方程:

Dim a, b, c As Integer

Dim x, y As Single

Dim d As Double

a = Val(InputBox("輸入二次項(xiàng)系數(shù)"))

b = Val(InputBox("輸入一次項(xiàng)系數(shù)"))

c = Val(InputBox("輸入常數(shù)項(xiàng)"))

d = b ^ 2 - 4 * a * c

If d 0 Then

MsgBox "方程無(wú)解"

ElseIf d = 0 Then

x = -b / (2 * a)

MsgBox "方程有一個(gè)解:" x

Else

x = (-b + Sqr(d)) / (2 * a)

y = (-b - Sqr(d)) / (2 * a)

MsgBox "方程有兩個(gè)解:" x "和" y

End If

三元一次方程:

方程組如下,

ax+by+cz=d

a'x+b'y+c'z=d'

a"x+b"y+c"z=d"

其中x,y,z為未知數(shù),a,a',a",b,b',b",c,c',c",d,d',d",為用戶輸入的數(shù)值

解N元一次方程,indat為N+1行、N列的數(shù)組,outdat為N個(gè)元素的數(shù)組

Public Sub 解方程(ByRef InDat() As Double, ByVal InDatCount As Long, ByRef OutDat() As Double, ByRef OutDatCount As Long)

Dim Xt() As Double

Dim Dt As Double

Dim Ss As Long

Dim OtSCount As Long

Dim XtOut() As Double

If InDatCount 1 Then

ReDim Xt(1 To InDatCount - 1, 1 To InDatCount) As Double

For j = 1 To InDatCount - 1 '行

For i = 2 To InDatCount + 1 '列

Xt(j, i - 1) = InDat(j, i) * InDat(InDatCount, 1) / InDat(1, 1) - InDat(InDatCount, i)

Next i

Next j

OtSCount = 0

解方程 Xt, InDatCount - 1, XtOut, OtSCount

Dt = 0

For i = 1 To InDatCount - 1

Dt = Dt + InDat(InDatCount, i + 1) * XtOut(i)

Next i

Dt = Dt + InDat(InDatCount, i + 1)

ReDim Preserve OutDat(1 To 1 + OtSCount) As Double

OutDat(1) = -Dt / InDat(InDatCount, 1)

For i = 2 To OtSCount + 1

OutDat(i) = XtOut(i - 1)

Next i

OutDatCount = 1 + OtSCount

Else

ReDim OutDat(1 To 1) As Double

If InDat(1, 1) 0 Then

OutDat(1) = -InDat(1, 2) / InDat(1, 1)

Else

OutDat(1) = 0

End If

OutDatCount = 1

End If

End Sub

VB.NET 求一元二次方程的程序

(-b+(b^2-4ac))/(2a) (-b+(b^2-4ac))/(2a) 是2個(gè)根

Delta = b * b - 4 * a * c '求得b*b-4*a*c并存放在變量Delta中

If Delta = 0 Then '如果Delta的值為0

Re = -b / (2 * a)

b * b - 4 * a * c=b^2-4ac=0

-b/(2a)是唯一解

VB.net如何輸出代數(shù)式,比如計(jì)算帶參數(shù)的一元二次方程,請(qǐng)寫清程序

額,我可以用vb6.0的語(yǔ)句回答您,給您參考,就是不知道您可以轉(zhuǎn)化成.net語(yǔ)句與否。

'添加text1,text2,text3用于記錄a,b,c的值

Private?Sub?Command1_Click()

On?Error?GoTo?check

Dim?a,?b,?c,?result1,?result2

a?=?Text1.Text

b?=?Text2.Text

c?=?Text3.Text

result1?=?(((-1)?*?b)?+?Sqr(b?^?2?-?4?*?a?*?c))?/?2?*?a

result2?=?(((-1)?*?b)?-?Sqr(b?^?2?-?4?*?a?*?c))?/?2?*?a

MsgBox?"x1=?"??result1??"??x2=?"??result2

Exit?Sub

check:

MsgBox?"error!please?check?your?number!"

End?Sub

VB.NET 如何繪制數(shù)學(xué)代數(shù)式(公式、方程、函數(shù)解析式等)?

絕對(duì)值是“|”,可以直接顯示,同理對(duì)數(shù)可用log(x)代替,根號(hào)和其他不支持顯示。

如果要顯示數(shù)學(xué)式子,只能畫吧。

計(jì)算時(shí)可用“^”求冪或求根,“/”表示除法和分?jǐn)?shù)線,還有math類。

vb.net編寫一元一次方程代碼,如-x+6=3

解: 移項(xiàng)得:-X=3-6

合并同類項(xiàng)得:-X=-3

系數(shù)化為1得:X=3

網(wǎng)站名稱:vb.net解方程 VB解方程
新聞來(lái)源:http://muchs.cn/article48/doocchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、外貿(mào)網(wǎng)站建設(shè)外貿(mào)建站、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名