数值分析常见习题解答
时间:2022-07-26
本文章向大家介绍数值分析常见习题解答,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
xix_ixi |
000 |
111 |
222 |
---|---|---|---|
yiy_iyi |
222 |
111 |
222 |
yi′y_i^{'}yi′ |
−2-2−2 |
−1-1−1 |
|
yi′′y_i^{''}yi′′ |
−10-10−10 |
||
KaTeX parse error: Unknown column alignment: 1 at position 28: … begin{array}{1̲} P…
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4NG02Jk-1587562372068)(https://s1.ax1x.com/2020/04/21/J8zKTU.png)]
KaTeX parse error: Unknown column alignment: 1 at position 28: … begin{array}{1̲} A…
KaTeX parse error: Unknown column alignment: 1 at position 28: … begin{array}{1̲} A…
import math
'''
给定一个函数,如:f(x)= x^(3/2),和积分上下限a,b,用机械求积Romberg公式求积分。
'''
import numpy as np
def func(x):
return x**2+math.sin(x)/x
class Romberg:
def __init__(self, integ_dowlimit, integ_uplimit):
'''
初始化积分上限integ_uplimit和积分下限integ_dowlimit
输入一个函数,输出函数在积分上下限的积分
'''
self.integ_uplimit = integ_uplimit
self.integ_dowlimit = integ_dowlimit
def calc(self):
'''
计算Richardson外推算法的四个序列
'''
t_seq1 = np.zeros(5, 'f')
s_seq2 = np.zeros(4, 'f')
c_seq3 = np.zeros(3, 'f')
r_seq4 = np.zeros(2, 'f')
# 循环生成hm间距序列
hm = [(self.integ_uplimit - self.integ_dowlimit) / (2 ** i) for i in range(0,5)]
print(hm)
# 循环生成t_seq1
fa = func(self.integ_dowlimit)
fb = func(self.integ_uplimit)
t0 = (1 / 2) * (self.integ_uplimit - self.integ_dowlimit) * (fa+fb)
t_seq1[0] = t0
for i in range(1, 5):
sum = 0
# 多出来的点的累加和
for each in range(1, 2**i,2):
sum =sum + hm[i]*func( self.integ_dowlimit+each * hm[i])#计算两项值
temp1 = 1 / 2 * t_seq1[i - 1]
temp2 =sum
temp = temp1 + temp2
# 求t_seql的1-4位
t_seq1[i] = temp
print('T序列:'+ str(list(t_seq1)))
# 循环生成s_seq2
s_seq2 = [round((4 * t_seq1[i + 1] - t_seq1[i]) / 3,6) for i in range(0, 4)]
print('S序列:' + str(list(s_seq2)))
# 循环生成c_seq3
c_seq3 = [round((4 ** 2 * s_seq2[i + 1] - s_seq2[i]) / (4 ** 2 - 1),6) for i in range(0, 3)]
print('C序列:' + str(list(c_seq3)))
# 循环生成r_seq4
r_seq4 = [round((4 ** 3 * c_seq3[i + 1] - c_seq3[i]) / (4 ** 3 - 1),6) for i in range(0, 2)]
print('R序列:' + str(list(r_seq4)))
r_seq5 = [round((4 ** 4 * r_seq4[i + 1] - r_seq4[i]) / (4 ** 4 - 1),6) for i in range(0, 1)]
print('A序列:' + str(list(r_seq5)))
return 'end'
rom = Romberg(0.3, 0.8)
print(rom.calc())
、
- 1),6) for i in range(0, 1)] print(‘A序列:’ + str(list(r_seq5))) return ‘end’
rom = Romberg(0.3, 0.8) print(rom.calc())
$运行结果:$
[外链图片转存中...(img-l6ySF4Lu-1587562372076)]、
$最终我们得到,int_{0.3}^{0.8}frac{x^3+sinx}{x}=0.635258$
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法