数值分析计算实题
姓名:
学号:
班级:
第二章
1程序代码
Clearclc
x1[02 04 06 08 10]
y1[098 092 081 064 038]
nlength(y1)
cy1()
for j2n 求差商
for in1j
c(i)(c(i)c(i1))(x1(i)x1(ij+1))
end
end
syms x df d
df(1)1d(1)y1(1)
for i2n 求牛顿差值项式
df(i)df(i1)*(xx1(i1))
d(i)c(i1)*df(i)
end
P4vpa(sum(d)5) P44次牛顿插值项式保留数点5位数
ppcsape(x1y1 'variational')调三次样条函数
qppcoefs
q1q(1)*[(x2)^3(x2)^2(x2)1]
q1vpa(collect(q1)5)
q2q(1)*[(x4)^3(x4)^2(x4)1]
q2vpa(collect(q2)5)
q3q(1)*[(x6)^3(x6)^2(x6)1]
q3vpa(collect(q3)5)
q4q(1)*[(x8)^3(x8)^2(x8)1]
q4vpa(collect(q4)5)求解化简项式
2运行结果
P4
098*x 03*(x 02)*(x 04) 0625*(x 02)*(x 04)*(x 06) 020833*(x 02)*(x 04)*(x 08)*(x 06) + 0784
q1
13393*x^3 + 080357*x^2 040714*x + 104
q2
13393*x^3 + 16071*x^2 088929*x + 11643
q3
13393*x^3 + 24107*x^2 16929*x + 14171
q4
13393*x^3 + 32143*x^2 28179*x + 18629
3问题结果
4次牛顿差值项式 098*x 03*(x 02)*(x 04) 0625*(x 02)*(x 04)*(x 06) 020833*(x 02)*(x 04)*(x 08)*(x 06) + 0784
三次样条差值项式
第三章
1程序代码
Clearclc
x[0 01 02 03 05 08 1]
y[1 041 05 061 091 202 246]
p1polyfit(xy3)三次项式拟合
p2polyfit(xy4)四次项式拟合
y1polyval(p1x)
y2polyval(p2x)项式求值
plot(xy'c'xy1'r'xy2'y')
p3polyfit(xy2)观察图类似抛物线二次项式拟合
y3polyval(p3x)
plot(xy'c'xy1'r'xy2'y'xy3'k')画出四种拟合曲线
2运行结果
p1
66221 128147 46591 09266
p2
28853 123348 162747 52987 09427
p3
31316 12400 07356
3问题结果
三次项式拟合P1
四次项式拟合P2
二次项式拟合P3
第四章
1 程序代码
1)建立函数文件fm
function yfun(x)
ysqrt(x)*log(x)
2)编写程序:
a 利复化梯形公式复化辛普森公式求解:
Clearclc
h0001h步长分令h1010010001
n1ht0s10s20
for i1n1
tt+f(i*h)
end
Th2*(0+2*t+f(1))Tvpa(T7) 梯形公式
for i0n1
s1s1+f(h2+i*h)
end
for i1n1
s2s2+f(i*h)
end
Sh6*(0+4*s1+2*s2+f(1))Svpa(S7) 辛普森公式
a’复化梯形公式复化辛普生公式程序代码:
Clearclc
x000011 h步长分令h1010010001
ysqrt(x)*log(x+eps)
Ttrapz(xy)
Tvpa(T7)
(h1运行结果样T1110223*10^(16)余情况结果相)
Clearclc
finline('sqrt(x)*log(x)'x)
Squadl(f01)
Svpa(S7)
b 利龙贝格公式求解:
Clearclc
m14m+1二分次数
h2
for i1m
hh2n1ht0
for j1n1
tt+f(j*h)
end
T(i)h2*(0+2*t+f(1))梯形公式
end
for i1m1
for jmi+1
T(j)4^i(4^i1)*T(j)1(4^i1)*T(j1)
通断迭代求T(j)T表角线元素
end
end
vpa(T(m)7)
2运行结果
T
04443875
S
04444345
ans
04444414
3问题结果
a 利复合梯形公式复合辛普森公式求解:
步长h
1
01
001
0001
梯形求积T
0
[1110223*10^(16)]
04170628
04431179
04443875
辛普森求积S
03267527
04386308
04441945
04444345
b 利龙贝格公式求解:
通15次二分结果:04444414
第五章
1程序代码
(1)LU分解解线性方程组:
Clearclc
A[10 7 0 1
3 2099999 6 2
5 1 5 1
2 1 0 2]
b[8590000151]
[mn]size(A)
Leye(n)
Uzeros(n)
flag'ok'
for i1n
U(1i)A(1i)
end
for r2n
L(r1)A(r1)U(11)
end
for i2n
for jin
z0
for r1i1
zz+L(ir)*U(rj)
end
U(ij)A(ij)z
end
if abs(U(ii))
return
end
for ki+1n
m0
for q1i1
mm+L(kq)*U(qi)
end
L(ki)(A(ki)m)U(ii)
end
end
L
U
yL\bxU\y
detAdet(L*U)
(2)列元消法:
function x gauss(Ab)
A[10 7 0 13 2099999 6 25 1 5 12 1 0 2]
b[8590000151]
[nn] size(A)
x zeros(n1)
Aug [Ab] 增广矩阵
for k 1n1
[pivr] max(abs(Aug(knk))) 找列元子矩阵行r
r r + k 1 列元矩阵行
if r>k
tempAug(k)
Aug(k)Aug(r)
Aug(r)temp
end
if Aug(kk)0 error(角元出现0’) end
增广矩阵消元成三角
for p k+1n
Aug(p)Aug(p)Aug(k)*Aug(pk)Aug(kk)
end
end
解三角方程组
A Aug(1n) b Aug(n+1)
x(n) b(n)A(nn)
for k n111
x(k)b(k)
for pn1k+1
x(k) x(k)A(kp)*x(p)
end
x(k)x(k)A(kk)
end
detAdet(A)
2 运行结果
1) LU分解解线性方程组
L
10e+006 *
00000 0 0 0
00000 00000 0 0
00000 25000 00000 0
00000 24000 00000 00000
U
10e+007 *
00000 00000 0 00000
0 00000 00000 00000
0 0 15000 05750
0 0 0 00000
x
00000
10000
10000
10000
detA
7620001
2)列元消法
detA
7620001
ans
00000
10000
10000
10000
3 问题结果
1) LU分解解线性方程组
L
U
x(00000100001000010000)T
detA762001
2)列元消法
x(00000100001000010000)T
detA762001
第六章
1程序代码
(1)Jacobi迭代
Clearclc
n 6 取n810
H hilb(n)
b H * ones(n 1)
e 000001
for i 1n
if H(i i)0 '角元零求解'
return
end
end
x zeros(n 1)
k 0
kend 10000
r 1
while k
x0 x
for i 1n
s 0
for j 1i 1
s s + H(i j) * x0(j)
end
for j i + 1n
s s + H(i j) * x0(j)
end
x(i) b(i) H(i i) s H(i i)
end
r norm(x x0 inf)
k k + 1
end
if k>kend '迭代收敛失败'
else '求解成功'
x
k
end
(2)SOR迭代
1)程序代码
function s SOR(n w)
H hilb(n)
b H*ones(n 1)
e 000001
for i 1n
if H(ii)0 角线零求解’
return
end
end
x zeros(n 1)
k 0
kend 10000
r 1
while k
x0 x
for i 1n
s 0
for j 1i 1
s s + H(i j) * x(j)
end
for j i + 1n
s s + H(i j) * x0(j)
end
x(i) (1 w) * x0(i) + w H(i i) * (b(i) s)
end
r norm(x x0 inf)
k k + 1
end
if k>kend '迭代收敛失败'
else '求解成功'
x
end
2)
命令窗口中分输入:
SOR(61)
SOR(81)
SOR(101)
SOR(615)
SOR(815)
SOR(1015)
2运行结果
Jacobi迭代:
ans
迭代收敛失败
SOR迭代:
第七章
1程序代码
(1)动点迭代法
1)建立函数文件:gm
function fg(x)
f(1)20(x^2+2*x+10)
2)建立函数文件:bddm
function [y n] bdd(x eps)
if nargin1
eps10e8
elseif nargin<1
error
return
end
x1 g(x)
n 1
while (norm(x1x)>eps)&&(n<10000)
x x1
x1 g(x)
n n + 1
end
y x
n
3)命令窗口输入:bdd(0)
(2)牛顿迭代
clearclc
format long
m8 m迭代次数分令m246810
xsym('x')
fsym('x^3+2*x^2+10*x20')
dfdiff(fx)
FXxfdf 牛顿迭代公式
Fxinline(FX)
disp('x')
x105
disp(x1)
Eps1E8
k0
while 1
x0x1
kk+1
x1feval(Fxx1) x1代入牛顿迭代公式代x1
disp(x1) 屏幕显示x1
if km
break
end
end
kx1
2运行结果
(1)动点迭代法
>> bdd(0)
n
25
ans
13688
(2) 牛顿迭代
x
0
2
1466666666666667
1371512013805921
1368810222633895
1368808107822667
1368808107821373
1368808107821373
1368808107821373
k
8
x1
1368808107821373
3问题结果
(1)动点迭代法
x13688 n25 收敛太慢
(2)牛顿迭代
初值取0
迭代次数k8时
k
x(k)
1
2
2
14666666
3
13715120
4
13688102
5
13688081
6
13688081
7
13688081
8
13688081
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档