数值计算方法与算法第三版课后习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值计算方法与算法第三版课后习题答案

1. 矩阵乘法

问题描述

给定两个矩阵A和B,尺寸分别为n×m和m×p,求矩阵A 和矩阵B的乘积矩阵C,尺寸为n×p。

算法实现

import numpy as np

def matrix_multiplication(A, B):

n, m = A.shape

m, p = B.shape

C = np.zeros((n, p))

for i in range(n):

for j in range(p):

for k in range(m):

C[i][j] += A[i][k] * B[k][j] return C

示例

A = np.array([[1, 2], [3, 4]])

B = np.array([[5, 6], [7, 8]])

C = matrix_multiplication(A, B)

print(C)

输出结果:

[[19. 22.]

[43. 50.]]

2. 数值积分

问题描述

给定一个函数f(x),以及积分区间[a, b],求函数f(x)在区间[a, b]上的定积分值∫abf(x)dx。

算法实现

简单的数值积分算法是采用小梯形法,将区间[a, b]均分成n个子区间,然后计算每个子区间的面积,最后将这些子区间面积相加得到定积分值。

def numerical_integration(f, a, b, n):

h = (b - a) / n

integral =0

for i in range(n):

x1 = a + i * h

x2 = a + (i +1) * h

integral += (f(x1) + f(x2)) * h /2 return integral

示例

import math

f =lambda x: math.sin(x)

a =0

b = math.pi

n =100

result = numerical_integration(f, a, b, n) print(result)

输出结果:

1.9998355038874436

3. 非线性方程求解

问题描述

给定一个非线性方程f(x) = 0,求方程的根x。

算法实现

简单的非线性方程求解算法是采用二分法,首先根据方程f(a)和f(b)的符号确定方程在区间[a, b]上是否存在根,如果存在,则不断将区间[a, b]均分找到方程的根。

```python def bisection_method(f, a, b, tol): if f(a) * f(b) > 0: print(

相关文档
最新文档