您现在的位置是:主页 > news > 为什么要给大夫做网站/网站制作厂家有哪些
为什么要给大夫做网站/网站制作厂家有哪些
admin2025/5/28 3:52:53【news】
简介为什么要给大夫做网站,网站制作厂家有哪些,打码网站怎么做接口,茂名网站建设公司对于那些看别人博客,自己却从来不写的人,我希望你们也多写。 对于那些只会说别人:你写的这个别人已经写过了的人,请你躝开。 用牛顿迭代法(Newton-Raphson)求解非线性方程组 x1**2-10*x1x2**280 x1*x2**2x1-10*x280 图1是随着求解次数的x…
为什么要给大夫做网站,网站制作厂家有哪些,打码网站怎么做接口,茂名网站建设公司对于那些看别人博客,自己却从来不写的人,我希望你们也多写。 对于那些只会说别人:你写的这个别人已经写过了的人,请你躝开。
用牛顿迭代法(Newton-Raphson)求解非线性方程组 x1**2-10*x1x2**280 x1*x2**2x1-10*x280
图1是随着求解次数的x…
对于那些看别人博客,自己却从来不写的人,我希望你们也多写。
对于那些只会说别人:''你写的这个别人已经写过了''的人,请你躝开。
==========================================
用牛顿迭代法(Newton-Raphson)求解非线性方程组
x1**2-10*x1+x2**2+8=0
x1*x2**2+x1-10*x2+8=0
图1是随着求解次数的x1与x2值
图2是随着求解次数的误差的二范数
=================================
# -*- coding: utf-8 -*-
"""
Created on Sat Mar 7 16:41:18 2020@author: leslielee求解非线性方程组
E1: x1**2-10*x1+x2**2+8=0
E2: x1*x2**2+x1-10*x2+8=0写出雅可比矩阵
E1对x1求导 E1对x2求导
E2对x1求导 E2对x2求导
即
2*x1-10 2*x2
x2**2+1 2*x1*x2-10牛顿迭代法 xn+1 = xn - f(xn)/f'(xn)
f1 = x1**2-10*x1+x2**2+8
f2 = x1*x2**2+x1-10*x2+8
df11 = 2*x1-10
df12 = 2*x2
df21 = x2**2+1
df22 = 2*x1*x2-10
"""import numpy as npdef calc(x):"""传入一个向量x 然后求解得到f与df"""x1=x[0,0] #x的0行0列 如果x[0]这样引用的话 则x1与x2是一个数组而不是一个数字x2=x[1,0]f1=x1**2-10*x1+x2**2+8f2=x1*x2**2+x1-10*x2+8df11=2*x1-10df12=2*x2df21=x2**2+1df22=2*x1*x2-10f=np.array([[f1,f2]]).Tdf=np.array([[df11,df12],[df21,df22]])return f,df#初始x1为0 x2为0
x0=np.array([[0,0]]).T
f0,df0=calc(x0)#初始化
p_xn=x0
p_f=f0
p_df=df0
#定义一个列表存储循环过程中得到的所有x1 x2
x1 = []
x2 = []
error = []
for i in range(100):x1.append(p_xn[0])x2.append(p_xn[1])y = np.dot(np.linalg.inv(p_df),p_f) p_xn1 = p_xn - yp_xn = p_xn1p_f,p_df = calc(p_xn)#如果y的2范数小于0.000001则跳出循环y_norm2 = np.linalg.norm(y,2)error.append(y_norm2)if y_norm2<0.000001:break# 画图
import matplotlib.pyplot as pltplt.figure(1)
plt.plot(x1,'r--',label='x1')
plt.plot(x2,'b-',label='x2')
plt.xlabel('solution times')
plt.legend()plt.figure(2)
plt.plot(error,label='error')
plt.xlabel('solution times')
plt.legend()