数值计算方法matlab课后答案,《现代的数值计算方法matlab版》习题解答.pdf

《现代的数值计算方法matlab版》习题解答

《现代数值计算方法(版)》

习题参考答案及部分习题解答提示

第一章

− −

1.1 (1) 0.5, 0.00217%, 5; (2) 0.5×10 , 0.217%, 3; (3) 0.5×10 , 0.000217%, 6; (4) 0.5×10 ,

0.0217%, 3.

1.2 (1) 0.5, 0.014%, 4; (2) 0.5×10− , 0.11%, 3; (3) 0.5×10− , 0.0017%, 5; (4) 0.5×10− , 0.017%,

4.

1.3 (1) 3.146, 0.5×10− ; (2) 3.1416, 0.5×10− ; (3) 3.14159.

1.4 提示: × 10−n− = 10− ⇒ n = 5 − lg 2 − lg(a + 1) ⇒ 4 − lg 2 ≤ n ≤ 5 − 2 lg 2 ⇒

a

3.699 ≤ n ≤ 4.3976 ⇒ n = 3.

1.5 |εr (x)| ≤ × 10− ≤ 0.5 × 10− .

a

1.6 提示: × 10−n− < 10− ⇒ n > 4 − 2 lg 2 ⇒ n = 4.

×

1.7 提示: × 10−n− = 3 × 10− ⇒ n = 4 − lg 6 − lg(a + 1) ⇒ 3 − lg 6 ≤ n ≤ 3 − lg 1.2 ⇒

a

2.2218 ≤ n ≤ 2.9208 ⇒ n = 2.

1.8 提示: x, = √ − = 28 ± √783, x = 28 + 27.982 = 55.982 ≈ 55.98, x = 28 − √783 =

= ≈ 0.01786.

.

◦ ◦

1.10 提示: (1) sin(x + y) − sin x = 2 sin y cos(x + y ), (2) 1 − cos 1◦ = − = , (3)

◦ ◦

√ √

ln( 10 + 1 − 10 ) = ln = − ln( 10 + 1 + 10 ).

1.11 (1) (A) 比较准确; (2) (A) 比较准确.

1.12 算法 2 准确. 在算法 1 中, ε ≈ 0.2231 带有误差 0.5 × 10− , 而这个误差在以后的每次计算中

顺次以4 , 4 , · · · 传播到 In 中. 而算法 2 中的误差是按 减少的, 是稳定的计算公式.

第二章

2.1 提示: 因B 奇异, 故 ∃x ≠ 0, 使得 Bx = 0. 于是, Ax = (A − B)x,x = A− (A − B)x,∥x ∥ ≤

∥A− ∥∥A − B ∥∥x ∥, 1 ≤ ∥A− ∥ · ∥A − B ∥,即∥A− ∥ ≥ .

∥A−B ∥

2.2 ∥x ∥ = 9, ∥x ∥ = √29, ∥x ∥ = 4; ∥A ∥ = 8, ∥A ∥ = 4√2, ∥A ∥ = 6.

∞ ∞

Matlab是一种非常适合进行数值计算的工具,有很多内置的函数和工具箱可以用来解决各种数值计算问题。下面列举一些常用的数值计算方法Matlab中的实现: 1. 数值积分 Matlab中可以使用quad函数进行数值积分,该函数可以处理一维和多维积分问题。比如,要计算函数f(x)在区间[a,b]上的定积分,可以使用如下代码: ```matlab f = @(x) x^2; result = quad(f, a, b); ``` 2. 数值微分 Matlab中可以使用diff函数对数据进行数值微分,可以计算一阶和二阶导数。比如,要计算函数f(x)在点x0处的一阶导数,可以使用如下代码: ```matlab x = linspace(0, 1, 100); f = sin(x); dfdx = diff(f) ./ diff(x); x0 = 0.5; index = find(x > x0, 1); result = dfdx(index); ``` 3. 线性方程组求解 Matlab中可以使用backslash运算符(\)求解线性方程组,也可以使用inv函数求解。比如,要求解线性方程组Ax=b,可以使用如下代码: ```matlab A = [1 2; 3 4]; b = [5; 6]; x = A \ b; ``` 4. 最小二乘法拟合 Matlab中可以使用polyfit函数进行最小二乘法拟合,可以拟合一维和二维数据。比如,要拟合一维数据x和y,使得曲线y=a*x^2+b*x+c最小二乘地逼近这些数据点,可以使用如下代码: ```matlab x = linspace(0, 1, 100); y = sin(x) + randn(size(x)) * 0.1; p = polyfit(x, y, 2); a = p(1); b = p(2); c = p(3); ``` 5. 常微分方程数值解法 Matlab中可以使用ode45函数对常微分方程进行数值求解,也可以使用其他ode函数对特定类型的常微分方程进行求解。比如,要求解dy/dt = -y的初值问题,可以使用如下代码: ```matlab f = @(t, y) -y; [t, y] = ode45(f, [0 10], 1); ``` 这里f是一个函数句柄,用来表示微分方程,[0 10]是求解的时间区间,1是初始条件。结果t和y是时间和相应的解向量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值