python 前进差分,中央差分,后进差分,Richardson补外を用いた牛顿法プログラム
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 前进差分,中央差分,后进差分,Richardson补外を用いた牛顿法プログラム相关的知识,希望对你有一定的参考价值。
# -*- coding: utf-8 -*-
# h = 0.00048828125
h = 0.001
def function_f(x):
return x * x - 5.0
# 前進差分
def zenshin_dif(x_v):
return x_v - function_f(x_v) / ((function_f(x_v + h) - function_f(x_v)) / h)
# 前進差分のRichardson補外
def zenshin_richard_dif(x_v):
temp1 = (function_f(x_v + h) - function_f(x_v))/h
temp2 = (1/2.0) * ((function_f(x_v + (2 * h)) - function_f(x_v))/(2 * h))
romberg1 = (temp1 - temp2)/(1 - 1/2.0)
return x_v - function_f(x_v) / romberg1
# 中央差分
def chuo_dif(x_v):
return x_v - function_f(x_v) / ((function_f(x_v + h) - function_f(x_v - h)) / (2.0 * h))
# 中央差分のRichardson補外
def chuo_richard_dif(x_v):
temp1 = (function_f(x_v + h) - function_f(x_v - h))/(2 * h)
temp2 = (1/4.0) * ((function_f(x_v + (2*h)) - function_f(x_v - (2*h))) / (4*h))
romberg1 = (temp1 - temp2)/(1 - 1/4.0)
return x_v - function_f(x_v) / romberg1
# 後進差分
def koshin_dif(x_v):
return x_v - function_f(x_v) / ((function_f(x_v) - function_f(x_v - h)) / h)
# 後進差分のRichardson補外
def koshin_richard_dif(x_v):
temp1 = (function_f(x_v + (-1*h)) - function_f(x_v))/(-1*h)
temp2 = (1/2.0) * ((function_f(x_v + (-2 * h)) - function_f(x_v))/(-2 * h))
romberg1 = (temp1 - temp2)/(1 - 1/2.0)
return x_v - function_f(x_v) / romberg1
# ステップの繰り返し
def iter(x_init):
x_v = x_init
for iter in range(0, 20):
print x_v
# x_v = zenshin_dif(x_v)
# x_v = zenshin_richard_dif(x_v)
# x_v = chuo_dif(x_v)
# x_v = chuo_richard_dif(x_v)
x_v = koshin_dif(x_v)
# x_v = koshin_richard_dif(x_v)
iter(0.01)
以上是关于python 前进差分,中央差分,后进差分,Richardson补外を用いた牛顿法プログラム的主要内容,如果未能解决你的问题,请参考以下文章
差分进化算法(DE)简介及Python实现
差分进化算法(DE)简介及Python实现
差分进化算法(DE)简介及Python实现
差分滤波器的介绍及用于图像特征检测
python 背景差分
python Numdifftool的有限差分导数(Fornberg方法)