久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2300|回復: 0
打印 上一主題 下一主題
收起左側

牛頓法解方程

[復制鏈接]
跳轉到指定樓層
樓主
ID:127437 發表于 2016-6-20 22:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    數值法解方程廣泛應用于各種工程科學領域,它可以求出解的近似值,而對于高次方程沒有求根公式,而且對于各種困難的方程,數值法就顯得尤為重要。

    我們的老師向我們介紹了“二分法”,這種方法雖也是數值解法,但是使用起來不僅繁瑣,計算復雜,而且效率低下。相比之下,使用牛頓法就顯得更好。


    下面簡要的介紹一下牛頓法:





(圖片繪制的不太好,看得懂就行。。)



    對于方程一元f(x)=0,設其中一個解為x0,尋找x0就是我們的任務。我們首先找一個在x0附近的解的估計值x1。

    牛頓法的核心思想就是利用曲線f(x)在 x1 點的切線(即導數)來近似的替代方程左邊復雜的f(x),由于直線與x軸的交點十分容易求得,所以很容易可以找出一個近似的原方程的解,然后將這個解作為新的x1,重復上述過程,得出的解就會越來越接近于真實情況。而且,在多數情況下,只要初始值不是給的相差太遠,牛頓法的逼近速度是很快的,遠遠快于二分法。


    根據這個方法,不難寫出牛頓法的程序,下面給出這個程序:



效果:















程序如下:
(使用方法:將下代碼寫入記事本,另存為 .vbs 文件,文件名可以隨意,若360誤報屬360技術問題。)





Dim x0, x1, x2, x3, m_expr, i, x, Res, der, s_expr

Function Limit (expr, point)   '取極限的近似值
Dim dif, i, nk, difk, ndifk, k, x
dif = 1
ndifk = 1000
x = point + dif
nk = Eval(expr)
For i = 1 To 3
dif = dif / 100
x = point + dif
k = Eval(expr)
difk = Abs(nk - k)
nk = k
'If difk < ndifk Then
'ndifk = difk
'Else
'Limit = "F"
'End If
Next
If Limit <> "F" Then Limit = k
End Function

Function Derivative (expr, point)   '取導數的近似值
Dim Delta_x
Delta_x = 0.000001
Derivative = (Limit(expr, point + Delta_x) - Limit(expr, point))/Delta_x
End Function

s_expr = Inputbox("請輸入關于x的一元方程" & vbCrLf & "注:指數是“^”,如 x^2 就是 x平方;乘號是“*”,不支持形如2x的寫法,必須寫成2*x")
m_expr = Mid(s_expr,1,InStr(s_expr,"=")-1) & "-(" & Mid(s_expr,InStr(s_expr,"=")+1,Len(s_expr)-InStr(s_expr,"=")) & ")"
x0 = 1
Do
x0 = Inputbox("請給出一個解的估計值 x0 ,輸入exit退出", "初始值", x0)
If LCase(x0) = "exit" Then Exit Do
x = x0
Res = ""
For i = 1 To 1000
x = x0
der = Derivative(m_expr, x)
If der = 0 Then Msgbox "無法找到解!請嘗試更換一個估計值!":Exit For
x1 = (Eval(m_expr)/der)
x0 = x0 - x1
If x1 = 0 Then
Exit For
End If
Next
If abs(x1) > 0.001 Then
Msgbox "解發散,無法求解!請嘗試更換一個估計值!"
End If
If Abs(x0) < 1 Then x0 = "0" & x0
Msgbox s_expr & vbCrLf & vbCrLf & "x = " & x0 & vbCrLf & vbCrLf & "共計算" & i & "次"
Loop




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久97 | 日韩一区二区三区四区五区六区 | 一级片免费观看 | 91porn成人精品 | 久久久精品一区二区 | 久热国产精品视频 | 日本亚洲一区二区 | 国产精品成人69xxx免费视频 | 国产精品有限公司 | 99re国产精品 | 国产免费看 | 在线国产一区二区 | 精品久久国产老人久久综合 | 黄色av大片| 高清视频一区二区三区 | 99久视频| 午夜视频在线观看一区二区 | 天堂久久av | 欧美成人精品欧美一级 | 免费a网站| 超碰地址 | av免费成人 | 成人深夜福利 | 伊人精品一区二区三区 | 久久久亚洲成人 | 狠狠影院 | 日韩在线h | 亚洲一区在线播放 | 国产免费一区二区 | 国产精品久久精品 | 91手机精品视频 | 播放一级黄色片 | 日韩欧美三级电影在线观看 | 天天操天天射综合 | 九九热国产精品视频 | 黄色大片免费播放 | h视频在线观看免费 | 久久久久国产精品一区二区 | 国产精品欧美一区二区三区 | 国产精品毛片 | 国产一区二区三区久久久久久久久 |