数值分析试题

上传人:小** 文档编号:55327900 上传时间:2018-09-27 格式:DOC 页数:10 大小:100KB
返回 下载 相关 举报
数值分析试题_第1页
第1页 / 共10页
数值分析试题_第2页
第2页 / 共10页
数值分析试题_第3页
第3页 / 共10页
数值分析试题_第4页
第4页 / 共10页
数值分析试题_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数值分析试题》由会员分享,可在线阅读,更多相关《数值分析试题(10页珍藏版)》请在金锄头文库上搜索。

1、1.设有某实验数据如下:x0.10.20.30.40.50.60.70.80.9y5.12345.30535.56845.93786.42707.07987.94939.025310.3627(1)在 MATLAB 中作图观察离散点的结构,用最小二乘法拟合一个合适的多项式函数;(2)在 MATLAB 中作出拟合曲线图.解:解:(1)在 MATLAB 中作图观察离散点的结构,用最小二乘法拟合一个合适的多项式函数。具体程序如下: x=0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9; y=5.1234 5.3053 5.5684 5.9378 6.4270 7.0798 7.

2、9493 9.0253 10.3627; plot(x,y,r+),legend(x,y),xlabel(x),ylabel(y),title(x,y)的散点结构图)0.10.20.30.40.50.60.70.80.9567891011xy(x,y)合 合 合 合 合 合x,y从图中各点可以看到, (x,y)散点结构图的变化趋势与二次多项式 很接近,故选取曲线函数为二次多项式函数,拟合多项式的次数为 2。用最小二乘法拟合一个合适的多项式函数,具体程序如下: s=polyfit(x,y,2); P=poly2str(s,t)P =8.2191 t2 - 1.8822 t + 5.3139则曲线

3、函数为发则曲线函数为发 f f(x x)=8.2192t=8.2192t2 2-1.8822t+5.3139-1.8822t+5.3139(2)在 MATLAB 中作出拟合曲线图,具体程序如下: x=linspace(0.1,0.9,9); y=8.2191.*x.2-1.8822.*x+5.3139; plot(x,y),legend(x,y),xlabel(x),ylabel(y),title(拟合曲线 y=f(x)0.10.20.30.40.50.60.70.80.9567891011xy合 合 合 合 y=f(x)x,y2. 在 MATLAB 中用复合 Simpson 公式编程计算下列

4、积分,并使其结果至少有 6 位有效数字.2280)xIe dx(eps=10解:解:(1)所安装的 MATLAB 中不含有复合辛普森程序,用 M文件编辑器编写被积函数的 M 文件,并以 jfSimpson.m 命名保存至MATLAB 搜索路径下。程序如下:function I,step = jfSimpson(f,a,b,type,eps)%type = 1 辛普森公式%type = 2 复合辛普森公式if(type=2 %缺省精度为0.0001 endI=0;switch typecase 1,I=(b-a)/6)*(subs(sym(f),findsym(sym(f),a)+.4*subs

5、(sym(f),findsym(sym(f),(a+b)/2)+.subs(sym(f),findsym(sym(f),b);step=1;case 2,n=2;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f),a)+subs(sym(f),findsym(sym(f),b)/h;while abs(I2-I1)epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/6)*(subs(sym(f),findsym(sym(f),x)+.4*subs(sym(f),findsym(

6、sym(f),(x+x1)/2)+.subs(sym(f),findsym(sym(f),x1);endendI=I2;step=n;end(2)在命令窗口中,调用 jfSimpson 函数进行求解。命令窗口显示如下: I,s=jfSimpson(inline(exp(x.2),0,2,2,1.0e-8)I =16.4526s =102说明:求解积分函数为说明:求解积分函数为 16.4526。3. 在 MATLAB 中试用经典四阶 Runge-Kutta 法编程求解初值问题 22323 , 01 01yyxxx y 解:(解:(1)用 M 文件编辑器将 RK4.m、RK_fun.m、RK_ma

7、in.m 的主程序命名并保存至 MATLAB 搜索路径下。主程序如下:RK4.mfunction t,y = RK4(func,t0,tt,y0,N,varagin)% Rk 方法计算一阶级微分方程组,% 由微分方程知识可以知道,对于高阶微分方程可以化为一阶微分方程组。% 初始时刻为 t0,结束时为 tt,初始时刻函数值为 y0% N 为 步数if nargin RK_mainy =ans= 4. 在 MATLAB 中利用 Newton 法编程计算方程 的一个根.ln2xx解:解:(1)所安装的 MATLAB 中不含有 newton.m 程序,用 M 文件编辑器编写被积函数的 M 文件,并以

8、newtonqxf.m 命名保存至MATLAB 搜索路径下。程序如下:function root=newtonqxf(f,a,b,eps)% 牛顿法求函f数在区间a,b上的一个零点 % f 为函数名% a 为区间左端点% b 为区间右端点% eps 为根的精度% root 为求出的函数零点if(nargin=3)eps=1.0e-4;endf1=subs(sym(f),findsym(sym(f),a);f2=subs(sym(f),findsym(sym(f),b);if(f1=0)root=a;endif(f2=0)root=b;endif(f1*f20)disp(两端点函数值乘积大于0!

9、);return;elsetol=1;fun=diff(sym(f);fa=subs(sym(f),findsym(sym(f),a);fb=subs(sym(f),findsym(sym(f),b); dfa=subs(sym(fun),findsym(sym(fun),a);dfb=subs(sym(fun),findsym(sym(fun),b);if(dfadfb)root=a-fa/dfa;elseroot=b-fb/dfb;endwhile(toleps)r1=root;fx=subs(sym(f),findsym(sym(f),r1);dfx=subs(sym(fun),find

10、sym(sym(fun),r1);root=r1-fx/dfx;tol=abs(root-r1);endend(2) 在命令窗口中,调用 newtonqxf 函数进行求解。命令窗口显示如下: root=newtonqxf(x-log(x)-2,3,1.0e-9)root =3.14625. 已知线性方程组1231231235212 4210 25101xxx xxx xxx (1)利用 MATLAB 说明解该方程组的 Gauss-Seidel 迭代法是否收敛;(2)在 MATLAB 中利用 Gauss-Seidel 迭代法求解该方程组,并给出迭代次数.解解:通过M文件编辑器加入gauseide

11、l.m函数程序,如下:function x,n=gauseidel(A,b,x0,eps,M)% 求解线性方程组的迭代法,其中,% A 为方程组的系数矩阵;% b 为方程组的右端项;% x0 为迭代初始化向量% eps 为精度要求,缺省值为 1e-5;% M 为最大迭代次数,缺省值 100;% x 为方程组的解;% n 为迭代次数;if nargin=3eps= 1.0e-6;M = 200;elseif nargin = 4M = 200;elseif nargin=epsx0=x;x=G*x0+f;n=n+1;if(n=M)disp(Warning: 迭代次数太多,可能不收敛!);retu

12、rn;endend(1)在命令窗口中,输入程序如下: A=5,2,1;-1,4,2;2,-5,10A =5 2 1-1 4 22 -5 10 D=diag(diag(A)D =5 0 00 4 00 0 10 L=-tril(A,1)L =-5 -2 01 -4 -2-2 5 -10 U=-triu(A,1)U =0 -2 -10 0 -20 0 0 G=(D-L)UG =0 -0.1945 -0.05150 -0.0275 -0.24260 0.0126 -0.0555p=abs(eigs(G,1)p =0.0677因因 p =0.0677 A=5,2,1;-1,4,2;2,-5,10; b=-12,10,1; x0=zeros(3,1); x,n=gauseidel(A,b,x0)x =-3.09091.09451.2655 n =11

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号