西安交大计算方法b大作业课件Word文档下载推荐.docx

上传人:b****2 文档编号:13920275 上传时间:2022-10-15 格式:DOCX 页数:21 大小:353.39KB
下载 相关 举报
西安交大计算方法b大作业课件Word文档下载推荐.docx_第1页
第1页 / 共21页
西安交大计算方法b大作业课件Word文档下载推荐.docx_第2页
第2页 / 共21页
西安交大计算方法b大作业课件Word文档下载推荐.docx_第3页
第3页 / 共21页
西安交大计算方法b大作业课件Word文档下载推荐.docx_第4页
第4页 / 共21页
西安交大计算方法b大作业课件Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

西安交大计算方法b大作业课件Word文档下载推荐.docx

《西安交大计算方法b大作业课件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西安交大计算方法b大作业课件Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

西安交大计算方法b大作业课件Word文档下载推荐.docx

end

%分别求解各项并求和

fork=n-1:

-1:

a1=4/(16^k*(8*k+1));

a2=2/(16^k*(8*k+4));

a3=1/(16^k*(8*k+5));

a4=1/(16^k*(8*k+6));

s1=a1+s1;

s2=a4+a3+a2+s2;

S=vpa(s1-s2,m)

实验结果:

11位有效数字计算结果如图1所示;

30为有效数字计算结果如图2所示。

图1.11位有效数字计算结果图2.30为有效数字计算结果

1.

某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。

已探测到一组等分点位置的深度数据(单位:

米)如下表所示:

分点

1

2

3

4

5

6

深度

9.01

8.96

7.96

7.97

8.02

9.05

10.13

7

8

9

10

11

12

13

11.18

12.26

13.28

13.32

12.61

11.29

10.22

14

15

16

17

18

19

20

9.15

7.90

7.95

8.86

9.81

10.80

10.93

(1)请用合适的曲线拟合所测数据点;

(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;

算法思想:

由于题中所给点数为20,若采用高次多项式插值将产生很大的误差,所以拉格朗日或牛顿并不适用。

题中光缆为柔性,可光滑铺设于水底,鉴于此特性,采用三次样条插值插值法较为合适。

算法结构:

三次样条算法结构见《计算方法教程》P110;

光缆长度计算公式:

clear;

clc;

x=0:

20;

y=[9.018.967.967.978.029.0510.1311.1812.2613.2813.3212.6111.2910.229.157.907.958.869.8110.8010.93];

d=y;

plot(x,y,'

k.'

'

markersize'

15)

holdon

%%%计算差商

fork=1:

fori=21:

(k+1)

d(i)=(d(i)-d(i-1))/(x(i)-x(i-k));

end

%%%设定d的边界条件

fori=2:

d(i)=6*d(i+1);

end

d

(1)=0;

d(21)=0;

%%%带状矩阵求解(追赶法)

a=0.5*ones(1,21);

b=2*ones(1,21);

c=0.5*ones(1,21);

a

(1)=0;

c(21)=0;

u=ones(1,21);

u

(1)=b

(1);

r=c;

yy

(1)=d

(1);

%%%追

fork=2:

21

l(k)=a(k)/u(k-1);

u(k)=b(k)-l(k)*r(k-1);

yy(k)=d(k)-l(k)*yy(k-1);

%%%赶

m(21)=yy(21)/u(21);

fork=20:

m(k)=(yy(k)-r(k)*m(k+1))/u(k);

%%%绘制曲线

k=1;

nn=100;

xx=linspace(0,20,nn);

l=0;

forj=1:

nn

ifxx(j)<

=x(i)

k=i;

break;

else

k=i+1;

h=1;

xbar=x(k)-xx(j);

xmao=xx(j)-x(k-1);

s(j)=(m(k-1)*xbar^3/6+m(k)*xmao^3/6+(y(k-1)-m(k-1)*h^2/6)*xbar+(y(k)-m(k)*h^2/6)*xmao)/h;

sp(j)=-m(k-1)*(x(k)-xx(j))^2/(2*h)+m(k)*(xx(j)-x(k-1))^2/(2*h)+(y(k)-y(k-1))/h-(m(k)-m(k-1))*h/6;

l(j+1)=(1+sp(j)^2)^0.5*(20/nn)+l(j);

%求解光缆长度

%%%绘图

plot(xx,s,'

r-'

linewidth'

1.5)

disp(['

¹

光缆长度为ª

'

num2str(l(nn+1)),'

Ã

×

])

曲线图如图2-1所示,计算光缆长度如图2-2所示。

图2-1光缆插值曲线图

图2-1光缆计算长度显示

3.假定某天的气温变化记录如下表所示,试用数据拟合的方法找出这一天的气温变化的规律;

试计算这一天的平均气温,并试估计误差。

时刻

平均气温

23

25

28

22

24

31

34

29

27

此题中所给数据点数目较多,采用拉格朗日插值法或者牛顿插值法需要很高次的多项式,计算困难,误差大;

采用样条插值计算量虽然不大,但是存放参数Mi的量很大,且没有一个统一的数学公式来表示,也不是很方便。

所以可考虑用最小二乘法进行拟合。

计算过程中,分别使用二次函数、三次函数以及四次函数,计算其相应的系数,估算误差并作图比较各个函数之间的区别。

(参考课本P123)

1.1[形成矩阵Qk]

1.2[变换Gk-1到Gk]

2.[求解三角方程]

3.[计算误差]

源代码:

x=0:

24;

y=[15 

14 

15 

16 

18 

20 

23 

25 

28 

31 

34 

29 

27 

24 

22 

17 

16];

m=length(x);

n=input('

请输入函数的次数 

plot(x,y,'

x,y,'

-'

grid;

hold 

on;

n=n+1;

G=zeros(m,n+1);

G(:

n+1)=y'

;

c=zeros(1,n);

%建立c来存放σ

q=0;

f=0;

b=zeros(1,m);

%建立b用来存放β 

%%%形成矩阵G

for 

j=1:

n

i=1:

m

G(i,j)=x(1,i)^(j-1);

end 

%%%建立矩阵Qk

k=1:

i=k:

c(k)=G(i,k)^2+c(k);

c(k)=-sign(G(k,k))*(c(k)^0.5);

w(k)=G(k,k)-c(k);

%建立w来存放ω

j=k+1:

w(j)=G(j,k);

b(k)=c(k)*w(k);

%%%变换矩阵Gk-1到Gk

G(k,k)=c(k);

n+1

q=w(i)*G(i,j)+q;

s=q/b(k);

G(i,j)=s*w(i)+G(i,j);

%%%求解三角方程 

Rx=h1

a(n)=G(n,n+1)/G(n,n);

i=n-1:

(-1):

j=i+1:

f=G(i,j)*a(j)+f;

a(i)=(G(i,n+1)-f)/G(i,i);

%a(i)存放各级系数

%%%回代过程

p=zeros(1,m);

p(j)=p(j)+a(i)*x(j)^(i-1);

plot(x,p,'

r*'

x,p,'

E2=0;

%用E2来存放误差

%%%误差求解

i=n+1:

E2=G(i,n+1)^2+E2;

E2=E2^0.5;

disp('

误差为'

disp(E2);

t=0;

t=t+p(i);

t=t/m;

%%%平均温度 

平均温度为'

num2str(t),'

℃'

二次函数拟合,结果如下图所示

图3-1二次函数拟合结果

三次函数拟合,结果如下图所示

图3-2三次函数拟合结果

四次函数拟合,结果如下图所示

图3-3四次函数拟合结果

结果对比:

将二次函数、三次函数和四次函数拟合结果绘制在同一个坐标内,如图3-4所示。

其计算误差结果见表3-1所示。

图3-4拟合结果对比分析

4.设计算法,求出非线性方程

的所有实根,并使误差不超过

本题可采用牛顿法迭代求解,令

得带格式为

根据函数图像可以找出根的大致分布区间,带入不同的初值即可解出不同的根.

源代码:

functiony=f2(x)

y=6*x.^5-45*x.^2+20;

%定义原函数

functiony=f3(x)

y=30*x^4-90*x;

%定义原函数倒数

i=-5:

0.1:

5;

y=f2(i);

plot(i,y)

holdon

plot(i,0,'

)%画出原函数图像

%%Newton法求根

x1=input('

输入初值'

e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1