西安交大 计算方法B上机作业

合集下载

计算方法上机报告_董晓壮

计算方法上机报告_董晓壮

计算方法A上机报告学院(系):电气工程学院学生姓名:陶然学号:授课老师:完成日期:2019年12月03日西安交通大学Xi'an Jiaotong University目录1 QR分解法求解线性方程组 (2)1.1 算法原理 (2)1.1.1 基于吉文斯变换的QR分解 (2)1.1.2 基于豪斯霍尔德变换的QR分解 (3)1.2 程序流程图 (4)1.2.1 基于吉文斯变换的QR分解流程图 (4)1.2.2 基于豪斯霍尔德变换的QR分解流程图 (5)1.3 程序使用说明 (5)1.3.1 基于吉文斯变换的QR分解程序说明 (5)1.3.2 基于豪斯霍尔德变换的QR分解程序说明 (7)1.4 算例计算结果 (8)2 共轭梯度法求解线性方程组 (10)2.1 算法原理 (10)2.2 程序流程图 (10)2.3 程序使用说明 (11)2.4 算例计算结果 (12)3 三次样条插值 (14)3.1 算法原理 (14)3.2 程序流程图 (16)3.3 程序使用说明 (17)3.4 算例计算结果 (19)4 龙贝格积分 (21)4.1 算法原理 (21)4.2 程序流程图 (22)4.3 程序使用说明 (23)4.4 算例计算结果 (24)结论 (26)1 QR 分解法求解线性方程组1.1 算法原理矩阵的QR 分解是指,可以将矩阵A 分解为一个正交矩阵Q 和一个上三角矩阵R 的乘积,实际中,QR 分解经常被用来解决线性最小二乘问题,分解情况如图1.1所示。

=⨯图1.1 QR 分解示意图本次上机学习主要进行了两个最基本的正交变换—吉文斯(Givens )变换和豪斯霍尔德(Householder )变换,并由此导出矩阵的QR 分解以及求解线性方程组的的方法。

1.1.1 基于吉文斯变换的QR 分解吉文斯矩阵也称初等旋转阵,如式(1.1)所示,它把n 阶单位矩阵I 的第,i j 行的对角元改为c ,将第i 行第j 列的元素改为s ,第j 行第i 列的元素改为s −后形成的矩阵。

西安交大金信工上机实验(汇编)

西安交大金信工上机实验(汇编)

虽然已经过去了,众大师们也拿到了20分,可是我只有10分……留给工友们做参考,也留给下一级学弟学妹们,祈祷他们少受这门课的苦……均DEBUG通过,顺便最后贴上一些其他同学的程序……上机实践31、将十六进制数12345678H转换成字符串“12345678”。

思路:用与运算将12345678H的每一位数分离出来,加30后变成相应数字的ASCII码值,并通过SHR,SHL运算排好顺序,最终转换成字符串“12345678”。

本题使用SS:IP=2000:0200,内存2000:0000~2000:001f。

e 2000:0 12 34 56 78//在2000:0处输入十六进制数12345678Ha200//将指令指针调到CS:0200r ds2000//将DS修改为2000,本题用数据存放在内存2000:0处mov ax,0//将AX清零mov si,0000//2000:0000存放原十六进制数12345678Hmov di,0010//2000:0010存放转换后的字符串ASCII码mov cx,4//循环4次s: mov ch,cl (020C)// 循环体开始,标号处IP为020C,先将外层循环次数4存在CH里,因为后面SHR中默认使用CL会造成冲突mov al,[si]//al的值为12Hand al,f0//进行与运算,将12H转换成10Hmov cl,4//将10H转换成01H需要右移4位,移动位数大于1时必须用CL 存放次数shr al,cl//此时AL=01Hadd al,30//将AL=01H转换成ASCII码31,代表字符“1”,需要加30mov [di],al//将AL=32存入2000:0010处mov ah,[si]//将12H放入AHand ah,0f//对12H进行与运算,变成02Hadd ah,30//将AH=02H转换成ASCII码32,代表字符“2”,需要加30mov [di+1],ah//将AH=32存入2000:0011处add di,2//DI加2inc si//SI加1mov cl,ch//将保存的外层循环次数4次放回CLmov ch,0//将CH清零loop 020C//执行循环,标号处IP为020C结果:2、将字符串“87654321”转换成十六进制数87654321H。

西安交通大学算法上机实验报告

西安交通大学算法上机实验报告

《计算机算法设计与分析》上机实验报告姓名:班级:学号:日期:2016年12月23日算法实现题3-14 最少费用购物问题★问题描述:商店中每种商品都有标价。

例如,一朵花的价格是2元,一个花瓶的价格是5元。

为了吸引顾客,商店提供了一组优惠商品价。

优惠商品是把一种或多种商品分成一组,并降价销售。

例如,3朵花的价格不是6元而是5元。

2个花瓶加1朵花的优惠价格是10元。

试设计一个算法,计算出某一顾客所购商品应付的最少费用。

★算法设计:对于给定欲购商品的价格和数量,以及优惠价格,计算所购商品应付的最少费用。

★数据输入:由文件input.txt提供欲购商品数据。

文件的第1行中有1个整数B(0≤B≤5),表示所购商品种类数。

在接下来的B行中,每行有3个数C,K和P。

C表示商品的编码(每种商品有唯一编码),1≤C≤999;K表示购买该种商品总数,1≤K≤5;P是该种商品的正常单价(每件商品的价格),1≤P≤999。

请注意,一次最多可购买5*5=25件商品。

由文件offer.txt提供优惠商品价数据。

文件的第1行中有1个整数S(0≤S≤99),表示共有S种优惠商品组合。

接下来的S行,每行的第1个数描述优惠商品组合中商品的种类数j。

接着是j个数字对(C,K),其中C是商品编码,1≤C≤999;K表示该种商品在此组合中的数量,1≤K≤5。

每行最后一个数字P (1≤P≤9999)表示此商品组合的优惠价。

★结果输出:将计算出的所购商品应付的最少费用输出到文件output.txt。

输入文件示例输出文件示例Input.txt offer.txt output.txt2 2 147 3 2 1 7 3 58 2 5 2 7 1 8 2 10解:设cost(a,b,c,d,e)表示购买商品组合(a,b,c,d,e)需要的最少费用。

A[k],B[k],C[k],D[k],E[k]表示第k种优惠方案的商品组合。

offer (m)是第m种优惠方案的价格。

西安交通大学计算方法B上机试题

西安交通大学计算方法B上机试题

1.计算以下和式:0142118184858616nn S n n n n ∞=⎛⎫=--- ⎪++++⎝⎭∑,要求: (1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。

(1)题目分析该题是对无穷级数求和,因此在使用matlab 进行累加时需要一个累加的终止条件。

这里令⎪⎭⎫ ⎝⎛+-+-+-+=681581482184161n n n n a nn ,则()()1.01616855844864816114851384128698161 681581482184161148113811282984161111<<⎪⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛++++++⎪⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛++++++=⎪⎭⎫⎝⎛⎪⎭⎫ ⎝⎛+-+-+-+⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛+-+-+-+=+++n n n n n n n n n n n n n n n n a a n n n n n n 故近似取其误差为1+≈k a ε,并且有m-1m -11102121⨯=⨯=≈+βεk a ,(2)算法依据使用matlab 编程时用digits 函数和vpa 函数来控制位数。

(3)Matlab 运行程序%%保留11位有效数字 k1=11;s1=0;%用于存储这一步计算值 for n=0:50a=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6)); n1=n-1;if a<=0.5*10^(1-k1) break end end;for i=0:1:n1t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)); s1=s1+t; ends11=vpa(s1,k1);disp('保留11位有效数字的结果为:');disp(s11); disp('此时n 值为:');disp(n1);%%保留30位有效数字 clear all; k2=30;digits(k2+2);s2=vpa(0);%用于存储这一步计算值for n=0:50a=vpa((1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6)));n2=n-1;if a<=0.5*10^(1-k2)breakendend;for i=0:1:n2t=vpa((1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)));s2=vpa(s2+t);ends30=vpa(s2,k2);disp('保留30位有效数字的结果为:');disp(s30);disp('此时n值为:');disp(n2);2.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

西安交大计算方法上机报告

西安交大计算方法上机报告

从而得到计算的公式:
j 1, 2,..., n 1 j 1 j l i1 i 2,3,..., n i1 11 i 1 lik ukj j i , i 1,..., n, i 2,3,.., n ij ij k 1 i 1 1 l ( lkt ti ) k i 1,..., n, i 2,3,.., n ki ki t 1 ii
计算方法 上机实习题目报告
班级:材料 s3076 班 姓名:丁明帅 学号:3113305029
1:计算 S
100000

k 1
1 ,要求误差小于 106 ,给出实现算法。 k2
【实现思路】
设当 k 值为 i 时 S-Si<10-6,则只需要
S Si

100000 1
k i
1
2
1 l32 ln 2 1 ln 3 1
4 / 46
12 22
1n 2 n

nn
因此有
1 j 2 j 0 jj 0 0
ij li1
li 2
li ,i -1
根据定义知道 L 矩阵的斜对角线上的值都为 1,且 L 矩阵的第一行与原矩阵 A 的第一行 相同,因此可以根据公式先计算 U 的第一行,然后计算 L 的第一列;以后的第 i 步先计算 U 的第 i 行, 然后计算 L 的第 i 列 (U 的第 n 行不作计算) 。 然后把最后的 U 的第 n 行计算出来。
【算法依据】
列主元高斯消元法的过程可以将方程组系数简化为系数矩阵与 b 矩阵, 从而利用方程组 对系数扩展矩阵进行消元。 在消元的过程中矩阵的行向量之间可以变换, 但列向量不能变化。 在进行压缩矩阵的求解中还需要人为的将因调整行向量所导致的列向量的变化调整回来。 Matlab 对于矩阵的处理非常容易,结合 for 循环语句可以实验本题大规模方程组的求解。

计算方法上机作业

计算方法上机作业

计算方法上机报告姓名:学号:班级:上课班级:说明:本次上机实验使用的编程语言是Matlab 语言,编译环境为MATLAB 7.11.0,运行平台为Windows 7。

1. 对以下和式计算:∑∞⎪⎭⎫ ⎝⎛+-+-+-+=0681581482184161n n n n S n,要求:①若只需保留11个有效数字,该如何进行计算; ②若要保留30个有效数字,则又将如何进行计算; (1) 算法思想1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为:142111416818485861681n n na n n n n n ε⎛⎫=---<< ⎪+++++⎝⎭;2、为了保证计算结果的准确性,写程序时,从后向前计算;3、使用Matlab 时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数)(2)算法结构1.;0=s⎪⎭⎫⎝⎛+-+-+-+=681581482184161n n n n t n ;2.for 0,1,2,,n i =⋅⋅⋅if 10mt -≤end;3.for ,1,2,,0n i i i =--⋅⋅⋅;s s t =+(3)Matlab 源程序clear; %清除工作空间变量 clc; %清除命令窗口命令m=input('请输入有效数字的位数m='); %输入有效数字的位数s=0;for n=0:50t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6));if t<=10^(-m) %判断通项与精度的关系break;endend;fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值for i=n-1:-1:0t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6));s=s+t; %求和运算ends=vpa(s,m) %控制s的精度(4)结果与分析当保留11位有效数字时,需要将n值加到n=7,s =3.1415926536;当保留30位有效数字时,需要将n值加到n=22,s =3.14159265358979323846264338328。

西安交大 计算方法B上机作业

西安交大 计算方法B上机作业

计算方法(B )上机作业一、三次样条拟合某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

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

已探测到一组等分点位置的深度数据(单位:米)如下表所示:(1)(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图; 解:1、算法实现的思想及依据题目(1)为曲线拟合问题多项式插值、分段插值和最小二乘法。

多项式插值,随着插值数据点的数目增多,误差也会随之增大,因此不选用。

最小二乘法适于数据点较多的场合,在此也不适用。

故选用分段插值。

分段插值又分为分段线性插值、分段二次插值、三次样条插值及更高阶的多项式插值。

由本题的物理背景知,光缆正常工作时各点应该是平滑过渡,因此至少选用三次样条插值法。

对于更高阶的多项式插值,由于“龙格现象”而不选用。

题目(2)求光缆长度,即求拟合曲线在0到20的长度,对弧长进行积分即可。

光缆长度的第一型线积分表达式为190k kk l +==∑⎰。

2、算法实现的结构参考教材给出的SPLINEM 算法和TTS 算法,在选定边界条件和选定插值点等距分布后,可以先将数据点的二阶差商求出来并赋值给右端向量d ,再根据TSS 解法求解M 。

光缆长度的第一型线积分表达式为190k kk l +==∑⎰。

3、程序运行结果及分析图1.1三种边界条件下三次样条插值图1.2光缆长度4、MATLAB代码:1)自己编程实现代码clear;clc;I=input('你想使用第几种边界条件?请输入1、2、3之一: ');x=0:20;y=[9.01 8.96 7.96 7.97 8.02 9.05 10.13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 9.15 7.90 7.95 8.86 9.81 10.8 10.93];plot(x,-y,'k.','markersize',15)%y为深度,取负号hold on%% 计算一阶差商y1=ones(1,21);for i=2:1:21y1(i)=(y(i)-y(i-1))/(x(i)-x(i-1));end%% 计算二阶差商y2=ones(1,21);for i=3:1:21y2(i)=(y1(i)-y1(i-1))/(x(i)-x(i-2));end%% 计算三阶差商y3=ones(1,21);for i=4:1:21y3(i)=(y2(i)-y2(i-1))/(x(i)-x(i-3));end%% 选择边界条件(I)if I==1d(1)=0;d(21)=0;a(21)=0;c(1)=0;% 第一个点和最后一个点的二阶差商为0 endif I==2d(1)=6*y1(1);d(21)=-6*y1(21);a(1)=1;c(1)=1;endif I==3d(1)=-12*y3(1);d(21)=-12*y3(21);a(21)=-2;c(1)=-2;%endfor i=2:20d(i)=6*y2(i+1);end%% 构造带状矩阵求解(追赶法)b=2*ones(1,21);a=0.5*ones(1,21);%a(21)=-2;c=0.5*ones(1,21);%c(1)=-2;u(1)=b(1);r(1)=c(1);%% 追yz(1)=d(1);for i=2:21l(i)=a(i)/u(i-1);u(i)=b(i)-l(i)*r(i-1);r(i)=c(i);yz(i)=d(i)-l(i)*yz(i-1);end%% 赶xg(21)=yz(21)/u(21);for i=20:-1:1xg(i)=(yz(i)-r(i)*xg(i+1))/u(i);endM=xg;%%所有点的二阶导数值%% 求函数表达式并积分t=1;h=1;N=1000x1=0:20/(N-1):20;length=0;for i=1:Nfor j=2:20if x1(i)<=x(j)t=j;break;elset=j+1;endendf1=x(t)-x1(i);f2=x1(i)-x(t-1);S(i)=(M(t-1)*f1^3/6/h+M(t)*f2^3/6/h+(y(t-1)-M(t-1)*h^2/6)*f1+(y(t)-M(t)*h^2/6)* f2)/h;Sp(i)=-M(t-1)*f1^2/2/h+M(t)*f2^2/2/h+(y(t)-y(t-1))/h-(M(t)-M(t-1))*h/6;length(i+1)=sqrt(1+Sp(i)^2)*(20/(N-1))+length(i);%第一类线积分endfigure(1);plot(x1,-S,'r-')%深度曲线griddisp(['第',num2str(I),'种边界条件下长度',num2str(length(N+1)),'米'])axis fill;xlabel('测点/米');ylabel('深度/米');title('三次样条曲线拟合');legend('数据点','拟合曲线',3);二、最小二乘近似假定某天的气温变化记录如下表所示,试用数据拟合的方法找出这一天的气温变化的规律;试计算这一天的平均气温,并试估计误差。

西安交通大学计算方法A上机作业

西安交通大学计算方法A上机作业

计算方法(A)大作业姓名:班级:专业:学号:共轭梯度法一、算法原理共轭梯度法是把求解线性方程组的问题转化为求解一个与之等价的二次函数极小化的问题,因此从任意给定的初始点出发,沿一组关于矩阵A的共轭方向进行线性搜索,在无舍入无差的假定下,最多迭代n(其中n为矩阵A的阶数)次就可求得二次函数的极小点,也就求得了线性方程组Ax=B的解。

下述定理给出了求系数矩阵A是对称正定矩阵的线性方程组Ax=b的解与求二次函数f(x)=12x T Ax−b T x极小点的等价性。

定理3.4.1设A是n阶对称正定矩阵,则x∗是方程组Ax=b的解的充分必要条件是x∗是二次函数f(x)=12x T Ax−b T x的极小点,即Ax∗=b⟺f(x∗)=minx∈R nf(x)证明:充分性.设x∗是f(x)的极小点,则由无约束最优化问题最优解的必要条件知∇f(x∗)=Ax∗−b即x∗是方程组Ax=b的解。

必要性. 若x∗是方程组Ax=b的解,即A x∗=b,注意到A是对称正定矩阵,故∀x∈R n有f(x)−f(x∗)=12x T Ax−b T x−12x T Ax∗+b T x∗=12(x T Ax−2b T x+x∗T Ax∗)−x∗T Ax∗+b T x∗=12(x T Ax−2(Ax∗)T x+x∗T Ax∗)−(Ax∗−b)T x∗=12(x−x∗)T A(x−x∗)≥0即x∗是f(x)的极小点,进而由A是正定矩阵知,x∗是f(x)的最小点。

证毕。

共轭梯度法在形式上具有迭代法的特征,在给定初始值情况下,根据迭代公式:x(k+1)=x(k)+αk d(k)产生的迭代序列x(1),x(2),x(3)…在无舍入误差假定下,最多经过n次迭代,就可求得f(x) 的最小值,也就是方程Ax=b的解。

共轭梯度法中关键的两点是,确定迭代格式中的搜索向量d(k)和最佳步长αk (αk≥0)。

实际上,搜索方向d(k)是关于矩阵A的共轭向量,在迭代中逐步构造之。

西安交大计算方法B2017大作业

西安交大计算方法B2017大作业

计算方法B上机报告姓名:学号:班级:学院:任课教师:2017年12月29日题目一:1.1题目内容某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

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

已探测到一组等分点位置的深度数据(单位:(1)(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;1.2 实现题目的思想及算法依据首先在题目(1)中要实现的是数据的拟合,显然用到的是我们在第三章中数据近似的知识内容。

多项式插值时,这里有21个数据点,则是一个20次的多项式,但是多项式插值随着数据点的增多,会导致误差也会随之增大,插值结果会出现龙格现象,所以不适用于该题目中点数较多的情况。

为了避免结果出现大的误差,同时又希望尽可能多地使用所提供的数据点,提高数据点的有效使用率,这里选择分段插值方法进行数据拟合。

分段插值又可分为分段线性插值、分段二次插值和三次样条插值。

由于题目中所求光缆的现实意义,而前两者在节点处的光滑性较差,因此在这里选择使用三次样条插值。

根据课本SPLINEM 算法和TSS 算法,采用第三种真正的自然边界条件,在选定边界条件和选定插值点等距分布后,可以先将数据点的二阶差商求出并赋值给右端向量d ,再根据TSS 解法求解三对角线线性方程组从而解得M 值。

求出M 后,对区间进行加密,计算200个点以便于绘图以及光缆长度计算。

对于问题(2),使用以下的公式:20=()L f x ds ⎰20(f x =⎰191(k kk f x +==∑⎰1.3 算法结构1. For n i ,,2,1,0⋅⋅⋅=1.1 i i M y ⇒2. For 2,1=k2.1 For k n n i ,,1, -=2.1.1 i k i i i i M x x M M ⇒----)/()(13. 101h x x ⇒-4. For 1-,,2,1n i =4.1 11++⇒-i i i h x x4.2 b a c c h h h i i i i i i ⇒⇒-⇒+++2;1;)/(11 4.3 i i d M ⇒+165. 0000;;c M d M d n n ⇒⇒⇒λn n n b a b ⇒⇒⇒2;;20μ6. 1111,γμ⇒⇒d b7. For m k ,,3,2 = ! 获取M 的矩阵元素个数,存入m7.1 k k k l a ⇒-1/μ 7.2 k k k k c l b μ⇒⋅-1- 7.3 k k k k l d γγ⇒⋅-1- 8. m m m M ⇒μγ/9. For 1,,2,1 --=m m k9.1 k k k k k M M c ⇒⋅-+μγ/)(110. k ⇒1 ! 获取x 的元素个数存入s 11. For 1,,2,1-=s i11.1 if i x x ≤~then k i ⇒;break else k i ⇒+112. xx x x x x h x x k k k k ˆ~;~;11⇒-⇒-⇒--- y h x h M y x h M y x M x M k k k k k k ~/]ˆ)6()6(6ˆ6[2211331⇒-+-++---1.4 matlab 源程序n=20; x=0:n;y=[9.01 8.96 7.96 7.97 8.02 9.05 10.13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 9.15 7.90 7.95 8.86 9.81 10.80 10.93];M=y; %用于存放差商,此时为零阶差商 h=zeros(1,n+1); c=zeros(1,n+1); d=zeros(1,n+1); a=zeros(1,n+1); b=2*ones(1,n+1); h(2)=x(2)-x(1);for i=2:n %书本110页算法SPLINEM h(i+1)=x(i+1)-x(i);c(i)=h(i+1)/(h(i)+h(i+1)); a(i)=1-c(i); enda(n+1)=-2; %计算边界条件c(0),a(n+1),采用的是第三类边界条件 c(1)=-2;for k=1:3 %计算k 阶差商 for i=n+1:-1:k+1M(i)=(M(i)-M(i-1))/(x(i)-x(i-k)); endif(k==2) %计算2阶差商 d(2:n)=6*M(3:n+1); %给d 赋值 endif(k==3)d(1)=(-12)*h(2)*M(4); %计算边界条件d(0),d(n),采用的是第三类边界条件 d(n+1)=12*h(n+1)*M(n+1); end endl=zeros(1,n+1); r=zeros(1,n+1); u=zeros(1,n+1); q=zeros(1,n+1); u(1)=b(1); r(1)=c(1); q(1)=d(1);for k=2:n+1 %利用书本49页算法TSS求解三对角线性方程组r(k)=c(k);l(k)=a(k)/u(k-1);u(k)=b(k)-l(k)*r(k-1);q(k)=d(k)-l(k)*q(k-1);endp(n+1)=q(n+1)/u(n+1);for k=n:-1:1p(k)=(q(k)-r(k)*p(k+1))/u(k);endfprintf('三对角线性方程组的解为:');disp(p);%求拟合曲线x1=0:0.1:20; %首先对区间进行加密,增加插值点n1=10*n;x2=zeros(1,n1+1);x3=zeros(1,n1+1);s=zeros(1,n1+1);for i=1:n1+1for j=1:nif x1(i)>=x(j)&&x1(i)<=x(j+1) %利用书本111页算法EVASPLINE求解拟合曲线s(x)h(j+1)=x(j+1)-x(j);x2(i)=x(j+1)-x1(i);x3(i)=x1(i)-x(j);s(i)=(p(j).*(x2(i)).^3/6+p(j+1).*(x3(i)).^3/6+(y(j)-p(j).*((h(j+1)).^2/6)).*x2( i)+...(y(j+1)-p(j+1).*(h(j+1)).^2/6).*x3(i))/h(j+1);endendendplot(x,-y,'x') %画出插值点hold onplot(x1,-s) %画出三次样条插值拟合曲线hold ontitle('三次样条插值法拟合电缆曲线');xlabel('河流宽度/m');ylabel('河流深度/m');Length=0;for i=1:n1L=sqrt((x1(i+1)-x1(i))^2+(s(i+1)-s(i))^2); %计算电缆长度Length=Length+L;endfprintf('电缆长度(m)=');disp(Length);1.5 结果与说明铺设海底光缆的曲线如图1.1所示图1. 1三次样条插值法拟合海底光缆曲线由上图可以看出,所得到的曲线光滑,能够较好得反映实际的河沟底部地势形貌。

西安交通大学计算方法B完整版

西安交通大学计算方法B完整版

第一章绪论1.1数值计算现代科学的发展,已导致科学与技术的研究从定性前进到定量,尤其是现代数字计算机的出现及迅速发展,为复杂数学问题的定量研究与解决,提供了强有力的基础。

通常我们面对的理论与技术问题,绝大多数都可以从其物理模型中抽象出数学模型,因此,求解这些数学模型已成为我们面临的重要任务。

一、本课程的任务:寻求解决各种数学问题的数值方法——如何将高等数学的问题回归到初等数学(算术)的方法求解——了解计算的基础方法,基本结构(否则只须知道数值软件)——并研究其性质。

立足点:面向数学——解决数学问题面向计算机——利用计算机作为工具充分发挥计算机的功能,设计算法,解决数学问题例如:迭代法、并行算法二、问题的类型1、离散问题:例如,求解线性方程组bAx=——从离散数据:矩阵A和向量b,求解离散数据x;2、连续问题的离散化处理:例如,数值积分、数值微分、微分方程数值解;3、离散问题的连续化处理:例如,数据近似,统计分析计算;1.2数值方法的分析在本章中我们不具体讨论算法,首先讨论算法分析的基础——误差。

一般来讲,误差主要有两类、三种(对科学计算):1)公式误差——“截断误差”,数学↔计算,算法形成——主观(人为):数学问题-数值方法的转换,用离散公式近似连续的数学函数进行计算时,一般都会发生误差,通常称之为“截断误差”;——以后讨论2)舍入误差及输出入误差——计算机,算法执行——客观(机器):由于计算机的存储器、运算器的字长有限,在运算和存储中必然会发生最末若干位数字的舍入,形成舍入误差;在人机数据交换过程中,十进制数和二进制数的转换也会导致误差发生,这就是输入误差。

这两种误差主要是由于计算机的字长有限,采用浮点数系所致。

首先介绍浮点数系一、计算机上的运算——浮点运算面向计算机设计的算法,则先要讨论在计算机上数的表示。

科学记数法——浮点数:约定尾数中小数点之前的数全为零,小数点后第一个数不能为零。

目前,一般计算机都采用浮点数系,一个存储单元分成首数和尾数:首数l 尾数(位)其中首数存放数的指数(或“阶”)部分,尾数存放有效数字。

西交计算方法A上机大作业

西交计算方法A上机大作业

计算方法A 上机大作业1. 共轭梯度法求解线性方程组算法原理:由定理3.4.1可知系数矩阵A 是对称正定矩阵的线性方程组Ax=b 的解与求解二次函数1()2TT f x x Ax b x =- 极小点具有等价性,所以可以利用共轭梯度法求解1()2TT f x x Ax b x =-的极小点来达到求解Ax=b 的目的。

共轭梯度法在形式上具有迭代法的特征,在给定初始值情况下,根据迭代公式:(1)()()k k k k x x d α+=+产生的迭代序列(1)(2)(3)x x x ,,,... 在无舍入误差假定下,最多经过n 次迭代,就可求得()f x 的最小值,也就是方程Ax=b 的解。

首先导出最佳步长k α的计算式。

假设迭代点()k x 和搜索方向()k d 已经给定,便可以通过()()()()k k f x d φαα=+的极小化()()min ()()k k f x d φαα=+来求得,根据多元复合函数的求导法则得:()()()'()()k k T k f x d d φαα=∇+令'()0φα=,得到:()()()()k T k k k T k r d d Adα= ,其中()()k k r b Ax =-然后确定搜索方向()k d 。

给定初始向量(0)x 后,由于负梯度方向是函数下降最快的方向,故第一次迭代取搜索方向(0)(0)(0)(0)()dr f x b Ax ==-∇=- 。

令(1)(0)00x x d α=+其中(0)(0)0(0)(0)T T r d d Adα=。

第二次迭代时,从(1)x 出发的搜索方向不再取(1)r ,而是选取(1)(1)(0)0dr d β=+,使得(1)d 与(0)d 是关于矩阵A 的共轭向量,由此可求得参数0β:(1)(0)0(0)(0)T T r Ad d Adβ=-然后从(1)x 出发,沿(1)d 进行搜索得到(2)(1)(1)1x x d α=+设已经求出(1)()()k k k k x x d α+=+,计算(1)(1)k k r b Ax ++=-。

2024西安交大网络教育《计算机应用基础》答案...pptx

2024西安交大网络教育《计算机应用基础》答案...pptx

D.。ffice 正确答案:C涵分:2分 .一殷认为.办公和家用的计窠机是一种通用计算机。这是根据以下()的计算机分类方法划分的? A.机招计算机处理数据的方式 B.根榭计算机运用器闱 C.根据计算机的双校和处理实力 0.根据计口机的塔本结构 正确答案:B 涵分:2分 .支扑多个外假设%,'jCPU时钟无关,并用严格规定来保证高度的率程性和兼容性的总线是()• A.数据总找 B.地及总线 1«制总线 0.6部总线 正确答案:D涵分:2分
B.ARPANET C.标准网 D.WAN 正俄答案:B 满分I2分 .所iW的信息是指(). A.基本素材 B,非数值数据 C.数值数据 D.处理后的数据 正确答案:D满分:2分 24若想要在网上杳ifijWWWW息,及访问Web网站.则用户主机上必需安装并运行的软件是(). A, HTM1. C.阅读C
27.当我们在搜寻引擎中输入.申花”•想要去杳询一姓申花企业的资料时却搜寻出了许多申花足球队的新闻•我们 可以在搜寻的时候设入().
A,中佗&足球 B.申花+足球 C.申花-足球 D.申花。R足球 正确答案:C涌分:2分 .在文件累燎的树形书目结构中,从根书目到任何数据文件.其通路有()。 A.1条 B,二条 C.三条 0.多于三条 正确答案:D满分I2分 .关TM络协议•下列()迭项是正确的. A,是网民们签仃的合同
.当用户正在编辑文档时,突然死机或断电,将会使正在编辑的文。(). A,完全丢失 B.大孤分丢失 C.很少部分丢失 0.名发无损 正确答案:C满分:2分 .卜而关于系统更新说法正确的是(). A.系统筑要更新的因为操作系统在花背漏涧 B.系统更新后•可以不再受病悔的攻击 C.系统更新只能从微软10站下©补丁包 D.更新血南好下坡安装,否则系统会马上崩溃 正确答案:A涵分:2分 .Internet昆由《)发展而来的。 A.局域网

西安交通大学工程分析程序设计Fortran上机作业参考答案

西安交通大学工程分析程序设计Fortran上机作业参考答案

. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . .
. . . . .
1
8 指 针 、格 式化 输入 /输 出、 文件 操作 8.1 格式化输入输出 . . . . . . . . . 8.1.1 整数 . . . . . . . . . . . 8.1.2 实数 . . . . . . . . . . . 8.1.3 复数 . . . . . . . . . . . 8.1.4 逻辑型 . . . . . . . . . . 8.1.5 字符串 . . . . . . . . . . 8.2 输出金字塔形状 . . . . . . . . . 8.3 整齐的杨辉三角形 . . . . . . . 8.4 龙格-库塔法求解微分方程 . . . 8.5 Shell排序 . . . . . . . . . . . . 9 参考文献 10 LICENSE

西安交大计算方法

西安交大计算方法

西安交通大学计算方法上机实验班级:(xxx)姓名:(xxx)学号:21116010041.按两种顺序计算y,哪个接近真值?Y = 1000 + + + … +用java 语言编写:public class Add {public static void main(String[] args){double s=0,y=1000;for(double a=1001.0;a<=2000.0;a++){y+=1.0/a;}for(double a=2000.0;a>=1001.0;a--){s+=1.0/a;}s=s+1000;System.out.println("正序和"+s);System.out.println("逆序和"+y);}}运行结果:结论:显然假设是double类型的数据时,先算大数的过程吃掉了末尾的小数被进位所埋没,导致了大数吃小数的误差,按从小到大(从右向左)的计算顺序所得的结果与真值相近,而按从大到小(从左到右)的计算顺序所得的结果与真值的误差较大。

1-18.设(x) = 1 + x + + + … + , 计算(-5)和1/(5),哪个接近?解法一:用JAVA 语言编写:public class second{ public static void main(String[] args){double s1=1 ,s2=1;double e=1,sum=1; //e的初值为1,sum用来存放n!int a=1;while(sum<Math.pow(10, 1000000)){sum=a*sum;e=1.0/sum+e;a++;}double b=1.0/(e*e*e*e*e);System.out.println("较为精确的值1/e^5="+b);for(int i=1;i<=24;i++){s1+=cimi1(i);s2+=cimi2(i);}s1=1.0/s1;System.out.println("1/S24(5)="+s1);System.out.println("S24(-5)="+s2);}public static double cimi1(int ai){double xi=1;for(int i=ai;i>=1;i--){xi=xi*(5.0/i);}return xi;}public static double cimi2(int ai){double xi=1;for(int i=ai;i>=1;i--){xi=xi*(-5.0/i);}return xi;}}运行结果:解法二:用matlab编程并运行,如下:(1)计算(-5)运行结果如下:(2)计算1/(5)运行结果如下:而的真是结果为0.006737946比较得1/(5)的计算结果与真实值更接近解法三:也可以用C++编写:#include "stdafx.h"#include"stdio.h"#include "iostream"using namespace std;int main(int argc, char* argv[]){ int func1(int );double func2(int);double y=0;int i;for(i=1;i<25;i++){ int z=func1(i);double e=func2(i);y+=z/e;}cout<<"----------------------------------------"<<endl;cout<<"1/S(5)的运算结果是:"<<" "<<1.0/(y+1)<<endl;cout<<"----------------------------------------"<<endl;return 0;}int func1(int x){int y=1;int k;for (k=0;k<x;k++)y*=5;return y;}double func2(int n){double y=1;int j;for (j=1;j<=n;j++)y*=j;return y;}运行结果如下图:结论:通过比较上述的几种编程结果,可以看出1/S(5),更接近真实值,而且用matlab更为简便,可以直接利用函数库,并可以轻松的嵌入秦九韶算法,大大减少运算量和时间。

西安交大计算方法b大作业

西安交大计算方法b大作业

西安交大计算方法b大作业《计算方法B》上机实验报告学院:班级: 姓名:学号:机械工程学院2021年12月22日11.计算以下和式:S??1nn?016?211??4????8n?18n?48n?58n?6?,要求: ??(1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。

实现思想:以上问题出现了近似数相减的问题,为了减小误差,可分别求得减数之和以及被减数之和,最后将两者相减。

另外,减数与被减数求和均为同号计算,按照绝对值递增顺序相加可减小舍入误差。

此题中对有效数字有要求,因而计算时首先需要根据有效数字位数计算得出迭代次数,以保证计算值的精度。

源程序:m=input('输入有效数字个数m=');s0=1;s1=0;s2=0;n=0; %判断迭代次数while s0>=0.5*10^-(m-1)s0=4/(16^n*(8*n+1))-2/(16^n*(8*n+4))-1/(16^n*(8*n+5))-1/(16^n*(8*n+6)); n=n+1; end%分别求解各项并求和 for k=n-1:-1:0a1=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; endS=vpa(s1-s2,m)2实验结果:11位有效数字计算结果如图1所示;30为有效数字计算结果如图2所示。

图1.11位有效数字计算结果图2.30为有效数字计算结果31. 某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

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

已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点深度分点深度分点深度 0 9.01 7 11.18 14 9.15 1 8.96 8 12.26 157.90 2 7.96 9 13.28 16 7.95 3 7.97 10 13.32 17 8.86 4 8.02 11 12.61 18 9.81 5 9.05 12 11.29 19 10.80 6 10.13 13 10.22 20 10.93 (1)请用合适的曲线拟合所测数据点;(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;算法思想:由于题中所给点数为20,若采用高次多项式插值将产生很大的误差,所以拉格朗日或牛顿并不适用。

西安交通大学计算方法习题(证明)答案

西安交通大学计算方法习题(证明)答案

习题答案——证明题 第2章 线性方程组求解p. 79——第14题证明:a. 由于 是范数,它必满足范数的三条件;由于Mx x =M,所以⑴ 非负性:,0≥=Mx xM且 0==Mx xM当且仅当 0Mx =,又由M 的非奇性,当且仅当0x =时才有0Mx =,因此:0=Mx 当且仅当0x =;⑵ 正齐性:MMx Mx Mx x M xααααα====)()(⑶ 三角不等式:MMMyxMy Mx My Mx y x M yx +=+≤+=+=+)(因此,按此定义的范数Mx 是范数;b. 仿前,容易证明1-=MAM A M 定义了一种矩阵范数。

关于相容性: MM MxA Mx MAM Mx MAM MAx Ax 11=≤==--第3章 数据近似p.129——第6题:a. 取,1)(=x f 则对插值节点n i x i ,,2,1,0)1,( =,其Lagrange 插值多项式为∑==ni i x l x L 0)()(,又由函数、插值多项式与余项的关系,及余项公式,有1)(0)()!1()()(1)()(0)1(0≡⇒≡+=-=-∑∑=+=ni i n ni i x l x n f x l x L x f ωξ此处,用到:0)(,1)()1(≡∴=+x f x f nb. 证明同上,只是将k x x f =)(,由于n k ≤,所以仍有0)()1(≡+x f n ;c. 由二项式定理:()0)1()()1()()1()()(000000=-=-=⎪⎭⎫ ⎝⎛-=⎪⎪⎭⎫ ⎝⎛-=-∑∑∑∑∑∑=-==-==-=kkj j k j j k j k j n i i jk i j j k j ni ik j j k i j j k j ni i ki x x x x C x l x x C x l x x C x l x x此处,用到了b.已证明的结论:k j x x l x j k ni i j k i ,,1,0,)(0==-=-∑;d. 只需注意到由于)(x y 是m 次多项式,又n m ≤,因此0)()1(≡+x y n ;因此,由余项公式:()0)()!1(1)()()1(=+=-+x y n x P x y n ωξ,此即所要的证明。

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

计算方法(B )上机作业一、三次样条拟合某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

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

已探测到一组等分点位置的深度数据(单位:米)如下表所示:(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图; 解:1、算法实现的思想及依据题目(1)为曲线拟合问题多项式插值、分段插值和最小二乘法。

多项式插值,随着插值数据点的数目增多,误差也会随之增大,因此不选用。

最小二乘法适于数据点较多的场合,在此也不适用。

故选用分段插值。

分段插值又分为分段线性插值、分段二次插值、三次样条插值及更高阶的多项式插值。

由本题的物理背景知,光缆正常工作时各点应该是平滑过渡,因此至少选用三次样条插值法。

对于更高阶的多项式插值,由于“龙格现象”而不选用。

题目(2)求光缆长度,即求拟合曲线在0到20的长度,对弧长进行积分即可。

光缆长度的第一型线积分表达式为190k kk l +==∑⎰。

2、算法实现的结构参考教材给出的SPLINEM 算法和TTS 算法,在选定边界条件和选定插值点等距分布后,可以先将数据点的二阶差商求出来并赋值给右端向量d ,再根据TSS 解法求解M 。

光缆长度的第一型线积分表达式为190k kk l +==∑⎰。

3、程序运行结果及分析图1.1三种边界条件下三次样条插值图1.2光缆长度4、MATLAB 代码:1)自己编程实现代码clear;clc;I=input('你想使用第几种边界条件?请输入1、2、3之一: '); x=0:20;y=[9.01 8.96 7.96 7.97 8.02 9.05 10.13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 9.15 7.90 7.95 8.86 9.81 10.8 10.93];plot(x,-y,'k.','markersize',15)%y为深度,取负号hold on%% 计算一阶差商y1=ones(1,21);for i=2:1:21y1(i)=(y(i)-y(i-1))/(x(i)-x(i-1));end%% 计算二阶差商y2=ones(1,21);for i=3:1:21y2(i)=(y1(i)-y1(i-1))/(x(i)-x(i-2));end%% 计算三阶差商y3=ones(1,21);for i=4:1:21y3(i)=(y2(i)-y2(i-1))/(x(i)-x(i-3));end%% 选择边界条件(I)if I==1d(1)=0;d(21)=0;a(21)=0;c(1)=0;% 第一个点和最后一个点的二阶差商为0endif I==2d(1)=6*y1(1);d(21)=-6*y1(21);a(1)=1;c(1)=1;endif I==3d(1)=-12*y3(1);d(21)=-12*y3(21);a(21)=-2;c(1)=-2;%endfor i=2:20d(i)=6*y2(i+1);end%% 构造带状矩阵求解(追赶法)b=2*ones(1,21);a=0.5*ones(1,21);%a(21)=-2;c=0.5*ones(1,21);%c(1)=-2;u(1)=b(1);r(1)=c(1);%% 追yz(1)=d(1);for i=2:21l(i)=a(i)/u(i-1);u(i)=b(i)-l(i)*r(i-1);r(i)=c(i);yz(i)=d(i)-l(i)*yz(i-1);end%% 赶xg(21)=yz(21)/u(21);for i=20:-1:1xg(i)=(yz(i)-r(i)*xg(i+1))/u(i);endM=xg;%%所有点的二阶导数值%% 求函数表达式并积分t=1;h=1;N=1000x1=0:20/(N-1):20;length=0;for i=1:Nfor j=2:20if x1(i)<=x(j)t=j;break;elset=j+1;endendf1=x(t)-x1(i);f2=x1(i)-x(t-1);S(i)=(M(t-1)*f1^3/6/h+M(t)*f2^3/6/h+(y(t-1)-M(t-1)*h^2/6)*f1+(y(t)-M(t)*h^2/6)*f2)/h;Sp(i)=-M(t-1)*f1^2/2/h+M(t)*f2^2/2/h+(y(t)-y(t-1))/h-(M(t)-M(t-1))*h/6;length(i+1)=sqrt(1+Sp(i)^2)*(20/(N-1))+length(i);%第一类线积分endfigure(1);plot(x1,-S,'r-')%深度曲线griddisp(['第',num2str(I),'种边界条件下长度',num2str(length(N+1)),'米'])axis fill;xlabel('测点/米');ylabel('深度/米');title('三次样条曲线拟合');legend('数据点','拟合曲线',3);二、最小二乘近似假定某天的气温变化记录如下表所示,试用数据拟合的方法找出这一天的气温变化的规律;试计算这一天的平均气温,并试估计误差。

解:1、算法实现的思想及依据本题共有25个数据点,数据量较大,因此选用多项式插值会导致较大的误差,插值样条函数虽然有较好的数值性质,但是Mi的计算量不小,而且没有统一的公式来表示。

另外,本题要求找出温度变化规律,插值方法要求p(x)必须通已知数据点,只会导致拟合曲线失去本有的数据所表示的规律;从表中的数据点可以看出,温度并不准确(温度只测量到整数位),因此没有必要要求拟合曲线通过数据点。

因此,选取最小二乘近似。

2、算法实现的结构算法参考课本LSS算法。

利用已有数据来生成了G,将y作为其最后一列(第n+1列)存放。

先形成矩阵Qk,再变换Gk-1到Gk;求解三角方程Rx=h1;最后根据定义计算误差。

平均温度采用数据点相加求和求平均,避免数值积分的繁琐。

3、程序运行结果及分析4、MATLAB代码%%最小二乘法拟合气温变化规律clear;clc;x=0: 24;y=[15,14,14,14,14,15,16,18,20,20,23,25,28,31,34,31,29,27,25,24,22,20,18,17,16]; N=length(y);sum=0; %求一天的平均温度averagefor i=1:Nsum=sum+y(i);endaverage=sum/N;fprintf('平均温度T为:%f\n',average);h=input('请输入多项式近似函数最高项的次数h:');n=h+1;%%参课本LSS算法G=zeros(N,n+1); %建立一个N行,n+1列的矩阵G %% 生成矩阵G各个元素for i=1:n %矩阵G中前N列元素for j=1:NG(j,i)=x(1,j)^(i-1);endendfor i=1:1:N %将y作为矩阵G中第(N+1)列元素G(i,n+1)=y(i);end%% 形成矩阵Qka=zeros(1,n); %建立存放σ的矩阵ab=zeros(1,N); %建立存放β的矩阵bfor k=1:nfor i=k:Na(k)=G(i,k)^2+a(k);enda(k)=-sign(G(k,k))*(sqrt(a(k)));w(k)=G(k,k)-a(k); %建立存放ω的矩阵wfor j=k+1:1:Nw(j)=G(j,k);endb(k)=a(k)*w(k);%% 变换Gk-1到GkG(k,k)=a(k);for j=k+1:1:n+1sum_wg=0;for i=k:Nsum_wg=w(i)*G(i,j)+sum_wg;endt=sum_wg/b(k);for i=k:1:NG(i,j)=t*w(i)+G(i,j);endendend%% 解三角方程Rx=h1X(n)=G(n,n+1)/G(n,n);for i=(n-1):-1:1sum_gx=0;for j=i+1:nsum_gx=G(i,j)*X(j)+sum_gx;endX(i)=(G(i,n+1)-sum_gx)/G(i,i);sum_gx=0;end%% 参数X(i)的回代p=zeros(1,N); %建立一维最小二乘近似数组p(x) for j=1:Nfor i=1:np(j)=p(j)+X(i)*x(j)^(i-1);endend%% 显示拟合函数各阶系数disp('各项拟合系数为:');for i=1:ndisp([num2str(i-1),'次项系数',num2str(X(i))]); end%% 误差E2求解E2=0;%多项式计算误差for i=n+1:NE2=G(i,n+1)^2+E2; end E2=sqrt(E2); disp('误差大小为'); disp(E2);%% 绘制曲线,显示结果 plot(x,y,'r*',x,p,'k-','LineWidth',1.5); xlabel('时刻/h'); ylabel('平均气温/°C');title('最小二乘法拟合的气温变化曲线图') xlim([0 24]);legend('数据点','拟合曲线')三、线性方程组求解。

(1)编写程序实现大规模方程组的高斯消去法程序,并对所附的方程组进行求解。

所附方程组的类型为对角占优的带状方程组。

(2)针对本专业中所碰到的实际问题,提炼一个使用方程组进行求解的例子,并对求解过程进行分析、求解。

解:1、算法实现的思想及依据和算法实现的结构高斯消去法主要分为两大步骤,即消去过程和回带过程。

算法借鉴课本GAUSSPP 算法。

由于题目中给出的系数矩阵是对角占优的矩阵,因此可以不选主元直接进行高斯消去;另外在非压缩格式带状矩阵中,存在着大量的非零元素,非零元素的运算毫无意义并且占用大量机器资源和时间,因此对课本中给出的GAUSSPP 算法进行优化。

对于n 阶、上带宽q 、下带宽p 的带状矩阵,选取p 与q 较大者(赋值给c),在第1行到第n-c 行,第k 列,只需要计算1,a k k+到,k c ka +,每一行也只需从,1a i k +到,a i k q+(i 从k+1到k+q);在第n-c+1到n 行,第k 列,计算1,a k k+到,n ka ,每一行只需要从,1i k a +计算到,i na (i 从k+1到n),这样可以减小运算量。

相关文档
最新文档