ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:228.29KB ,
资源ID:18707288      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18707288.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算方法上机作业集合Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算方法上机作业集合Word格式文档下载.docx

1、上机作业181页第四题线性方程组为(1)顺序消元法A=1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147;b=9.5342;6.3941;18.4231;16.9237;上机代码函数部分如下function b = gaus( A,b )%用b返回方程组的解B=A,b;n=length(b);RA=rank(A);RB=rank(B);dif=RB-RA;if dif disp(此方程组无解); returnendif R

2、A=RB if RA=n format long;此方程组有唯一解 for p=1:n-1 for k=p+1:n m=B(k,p)/B(p,p); B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1); end end %顺序消元形成上三角矩阵 b=B(1:n,n+1); A=B(1:n,1:n); b(n)=b(n)/A(n,n); for q=n-1:-1:1 b(q)=(b(q)-sum(A(q,q+1:n)*b(q+1:n)/A(q,q); end %回代求解 else此方程组有无数组解上机运行结果为 A=1.1348,3.8326,1.1651,3.4017; X=

3、gaus(A,b)此方程组有唯一解X = 1.000000000000000(2)列主元消元法函数部分代码如下function b = lieZhu(A,b )%用b返回方程组的解format long;该方程组无解if dif=0该方程组有唯一解 c=zeros(1,n); for i=1: max=abs(A(i,i); m=i; for j=i+1: if max0.0001)%判断当前的解是否到达精度要求 b=x1; x1=B*b+f; num=num+1;end;fprintf(求得的解为:ndisp(x1);迭代次数:%d次n,num);上机运行,结果如下 A=4,-1,0,-1,

4、0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4; b=0;5;-2;6; Jacobi(A,b) 0.999981765074381 1.99995018125674 0.999975090628368 1.9999635301487628次满足要求的解如输出结果所示,总共迭代了28次(2)高斯-赛德尔迭代法上机程序如下所示function =Gauss_Seidel( A,b )%高斯赛德尔迭代法D=diag(diag(A);L=D-tril(A);U=D-triu(A);B=inv(

5、D-L)*U;f=inv(D-L)*b;x0=B*b+f;while(norm(x0-b)0.0001) b=x0; x0=B*b+f;结果为ndisp(x0);迭代次数为: Gauss_Seidel(A,b)结果为 0.999960143810658 1.99995676152139 0.999963508299833 1.99996662162874 0.999972527179715 1.9999840088698915次满足精度要求的解如上述程序打印输出所示,迭代了15次(3)SOR迭代法w依次取1.334,1.95,0.95上机代码如下function = SOR(A,b,w )%S

6、OR迭代法B=inv(D-w*L)*(1-w)*D+w*U);f=w*inv(D-w*L)*b;迭代次数为%dn 上机运行 SOR(A,b,1.334) 1.00001878481009 1.99998698322858 1.00001815013068 2.00000041318053 0.999991858543476 2.0000068413569迭代次数为13 SOR(A,b,1.95) 0.999984952088107 2.00000960832604 0.999959115182729 2.0000168426006 1.00000443526697 1.999978851134

7、46迭代次数为241 SOR(A,b,0.95) 0.999961518309351 1.99995706825231 0.999963054838453 1.99996580572033 0.999971141727589 1.9999827300678迭代次数为17由以上输出得到w取值不同的情况下,得到的满足精度要求的结果,迭代次数分别如输出所示第五次上机作业8.从函数表x0.00.10.20.30.4010.5f(x)0.398940.396950.391420.381380.368120.35206出发,用以下方法计算f(0.15),f(0.31)及f(0.47)的近似值(1)分段线性

8、插值(2)分段二次插值(3)全区间上拉格朗日插值1线性插值编写函数如下function R = div_line( x0,y0,x )%线性插值p=length(x0);n=length(y0);m=length(x);if(p=n)%x的个数与y的个数不等 error(数据输入有误,请重新输入 return; fprintf(线性插值n for t=1:m z=x(t); if(zx0(p)x%d不在所给自变量范围内,无法进行插值,t); continue;p-1x0(i+1) break; end; R(t)=y0(i)*(x(t)-x0(i+1)/(x0(i)-x0(i+1)+y0(i+

9、1)*(x(t)-x0(i)/(x0(i+1)-x0(i);上机运行如下 x0=0.0 0.1 0.195 0.3 0.401 0.5; y0=0.39894 0.39695 0.39142 0.38138 0.36812 0.35206; x=0.15 0.31 0.47; div_line(x0,y0,x)线性插值ans = 0.39404 0.38007 0.35693即结果为f(0.15)0.39404,f(0.31)0.38007,f(0.47)0.356932分段二次插值编写的函数如下function R = div2line(x0,y0,x)%分段二次插值m=length(y0)

10、;n=length(x);if(p=m)输入错误,请重新输入数据for t=1: if(x(t)x%d不在所给区间上 tag=2; m=abs(x(t)-x0(1)+abs(x(t)-x0(2)+abs(x(t)-x0(3); for i=3: sum=abs(x(t)-x0(i-1)+abs(x(t)-x0(i)+abs(x(t)-x0(i+1); if(summ) m=sum; tag=i;tag=%dn,tag);R(t)=y0(tag-1)*(x(t)-x0(tag)*(x(t)-x0(tag+1)/(x0(tag-1)-x0(tag)*(x0(tag-1)-x0(tag+1)+y0(

11、tag)*(x(t)-x0(tag-1)*(x(t)-x0(tag+1)/(x0(tag)-x0(tag-1)*(x0(tag)-x0(tag+1)+y0(tag+1)*(x(t)-x0(tag-1)*(x(t)-x0(tag)/(x0(tag+1)-x0(tag-1)*(x0(tag+1)-x0(tag);End上机运行,执行结果为div2line(x0,y0,x) 0.39448 0.38022 0.35725即分段二次插值方法下,f(0.15)0.39448,f(0.31)0.38022,f(0.47)0.357253上机编写的程序如下function R = lagrange(x0,y

12、0,x)%全区间上拉格朗日插值p=length(y0);n=length(x0);%计算函数表和x的长度if p = n error(%假设函数表的x与y长度不一致则输入有误else fprintf(拉格朗日插值nm %利用循环计算每个x的插值 s=0.0; for k=1:n p=1; if i=k p=p*(z-x0(i)/(x0(k)-x0(i); s=s+y0(k)*p; %根据拉格朗日插值公式求解yR(t)=s;%输出插值结果 lagrange(x0,y0,x)拉格朗日插值 0.39447 0.38022 0.357220.39447,f(0.31)0.357229.解:上机程序如下

13、,为方便起见,将所有操作分在四个函数中进行入口函数function =spline( X,Y,xx,y1_0,y1_18 )%输出自变量所对应的函数值M=getM(X,Y,y1_0,y1_18);%先得到Ms=xx;k=length(xx);for a=1:k s(xx(a)=getExp(X,Y,M,xx(a);%计算自变量所在小区间对应曲线的表达式,并根据表达式计算对应的函数值s(%d)=%fn,xx(a),s(xx(a); %输出打印函数值获取Mfunction M = getM(X,Y,y1_0,y1_1)%得到Mn=length(X);a=0*X;b=a;c=a;h=a;f=a;b=

14、b+2;h(2:n)=X(2:n)-X(1:n-1); % h(1)不用 a(2:n-1)=h(2:n-1)./(h(2:n-1)+h(3:n);c(2:n-1)=1-a(2:a(n)=1;c(1)=1;Yf(2:n)=Y(2:n)-Y(1:f(2:n-1)=6*(Yf(3:n)./h(3:n)-Yf(2:n-1)./h(2:n-1)./(h(2:f(1)=6*(Yf(2)/h(2)-y1_0)/h(2);f(n)=6*(y1_1-Yf(n)/h(n)/h(n);M=CalM(n,a,b,c,f);%计算M计算Mfunction f = CalM(n,a,b,c,f)% 追赶法求解Meps=0

15、.1e-15; %防止参数过小,是的计算误差过大if abs(b(1)eps除数为0,停止计算 c(1)=c(1)/b(1);%追赶法:根据递推算式计算for i=2: b(i)=b(i)-a(i)*c(i-1); if abs(b(i)X(n5) n1=n5; n2=n5;%计算yy=M(n1)*(X(n2)-x)3/(6*h(n2)+ M(n2)*(x-X(n1)3/(6*h(n2);y=y+(Y(n1)-M(n1)*h(n2)*h(n2)/6)*(X(n2)-x)/h(n2);y=y+(Y(n2)-M(n2)*h(n2)*h(n2)/6)*(x-X(n1)/h(n2);%结束上机试运行,

16、过程如下 X=0.52 3.1 8.0 17.95 28.65 39.62 50.65 78 104.6 156.6 208.6 260.7 312.5 364.4 416.3 468 494 507 520; Y=5.28794 9.4 13.84 20.2 24.9 28.44 31.1 35 36.5 36.6 34.6 31.0 26.34 20.9 14.8 7.8 3.7 1.5 0.2; xx=2 4 6 12 16 30 60 110 180 280 400 515; y1_0=1.86548; y1_18=-0.046115;spline(X,Y,xx,y1_0,y1_18)s(2)=7.825123s(4)=10.481311s(6)=12.363477s(12)=16.575574s(16)=19.091594s(30)=25.386402s(60)=32.804283s(110)=36.647878s(180)=35.917148s(280)=29.368462s(400)=16.799784s(515)=0.542713根据上述程序运行结果,可得所有自变量对应的函数值,如上输出结果所示第六次上机作业10.已知一组实验数据i23456789

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

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