同济大学数值分析matlab编程题汇编

合集下载

matlab编程题整理

matlab编程题整理

作业一1输出x,y两个中值较大的一个值x=input(‘x’);y=input(‘y’);if x>yxelseyend2输入x,计算y的值。

计算函数的值y=x+1,x<0,y=2x-1,x≧0x=input(‘x);if x<0y=x+1elsey=2*x-1end3输入一学生成绩,评定其等级,方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分为“不合格”x=input(‘x’)if x>100 | x<0y=’输入错误’elseif x>=90y=’优秀’elseif x>=80y=’良好’elseif x>=70y=’中等’elseif x>=60y=’及格’elsey=’不合格’emd4某超市节日期间举办购物打折的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。

x=input(‘x’);if x>=500y=x*0.8elseif x>=300y=x*0.85elseif x>=200y=x*0.9elseif x>=100y=x*0.95else y=xend 5编程计算:s=1+2+3+…+100sum=0;for i=1:100sum=sum+i;endsum引申 1!-2!+3!-4!+5!- (99)sum=0;for i=1:99pdr=1;for k=1:ipdr=pdr*k;endsum=sum+pdr*(-1)^(i-1);endsum引申 1*2*3*4*……*100sum=1;for i=1:100sum=sum*iendsum6计算1~100的奇数和sum=0;for i=1:2:100sum=sum+i;endsum7百元买百鸡问题。

matlab编程经典例题

matlab编程经典例题

例3-12 求[100,200]之间第一个能被21整除 的整数。 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
4.循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称为 循环的嵌套,或称为多重循环结构。 例3-13 若一个数等于它的各个真因子之和,则称该数为 完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完 数。 for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end end
2.while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行 循环体语句,执行后再判断条件是否 成立,如果不成立则跳出循环。
例3-11 从键盘输入若干个数,当输入0时结束输入,求这 些数的平均值和它们之和。 程序如下: sum=0; cnt=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; cnt=cnt+1; val=input('Enter a number (end in 0):'); end if (cnt > 0) sum mean=sum/cnt end
for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元 素赋给循环变量,然后执行循环体 语句,直至各列元素处理完毕。
例3-10 写出下列程序的执行结果。 s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; end disp(s');

应用数值分析matlab练习及答案

应用数值分析matlab练习及答案

x sin( x ) 在 [0, 2 ] 上观察拉格朗日中值定理的几何意义。要求:将 2
f ( x ) 编写成一个函数,利用求导数的命令对编写的函数求导,并利用 eval 函数和 solve 函
数计算切点;绘制出切线、 割线和函数曲线,并在图上标识出切线、 切点、 割线和函数曲线; 7、利用 matlab 计算 段 AB 。 8、设一阶微分方程组
Matlab 作业题
一、基础知识
ax 2 by c 0 1、求代数方程组 关于 x,y 的解。 x y 0
2 、 已 知 f ax b, 对 其 进 行 符 号 变 量 替 换 a sin(t ), b cos(t ) , 符 号 常 量 替 换
nபைடு நூலகம்


x 3dx 3zy 2dy x 2dz ,其中 是从点 A(3, 2,1) 到 B(0, 0, 0) 的直线
dy dx 2 x 10cos( t ) dt dt dx dy 2 y 4e 2 t dt dt
当 t 0, x(0) 2, y(0) 0 ,利用 matlab 求微分方程在 t [0,15] 上的数值解,并画出
A(i( ) A(i ) 0) ,并编写一个函数程序文件,要求如下:
(1)删除不能开平方的元素及其后的元素; (2)删除不能开平方的元素; (3)输出删除以元素后的新数组 A 和平方根数组
A( i ) 。
5、某市长途汽车站与火车站相距 10Km,有两路公交车来往其间。一路是慢车,从起点到 终点需要 24min;令一路是直达快车,快车比慢车迟开 6min,却早 6min 到达。请你采用 matlab 编程计算:两车单程所有的路程 s 与行驶时间 t 的函数表达式,并用图示法(即绘制 出图像,做出图例、用线型、颜色区分快慢车)表示两车在何时、何地相遇?(假设两车匀 速行使) 6 、对函数 f ( x )

同济大学matlab课程练习题答案

同济大学matlab课程练习题答案
所以系数最大的项是131220*x^9和131220*x^8
题目7
>> syms a x
>> factor(a*(sin(x))^2-(2*a^2-a+1)*sin(x)+2*a-1)
ans =
(sin(x) - 2*a + 1)*(a*sin(x) - 1)
第四章极限与导数
题目1
(1)
>> syms x;lim1=limit([cos(x)-exp(-x^2/2)]/x^4,x,0)
"two-dimensional inverse FFT", and "pseudoinverse".
Contrast this with "which inverse" or "what inverse", which run
more quickly, but which probably fail to find anything because
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
c=A(2,1)
c =
3
(2)
t = 2:2:6;
B = A(t,:);
B
B =
3 32 7 21 23 25
8 28 33 17 10 15
(9)
abs([1 2;3 4]-pi) %绝对值
ans =
2.1416 1.1416
0.1416 0.8584

Matlab试题和答案

Matlab试题和答案

Matlab 上机考试试题考试要求:1、从10道题目中随机抽取3道独立完成,时间1小时。

(输入randperm (10),取前三个数)2、每个题目兴建一个.m 的文件,命名方式ks+N.m(N 为题号),然后将所选三个题目放入一个文件夹,文件名为学号+姓名。

考试完成后将文件夹通过FTP 提交。

3、考试完成后要写一份报告,内容包括以下:(建一个.Doc 的文档,文件名为学号+姓名)(1) 题号,题目;(2) 运行结果及其分析;(3) 图也要粘贴在文档中。

4、查阅资料写一篇2000字左右的关于matlab 在电子信息中的应用的小论文或综述, 也可以具体的写matlab 在电子信息中某一个方面或某一个点的应用。

(打印或手写都可,打印版要交电子文档)5、所有要交的东西在1月3号之前必须交齐。

(由学习委员统一收齐交给我,电子文档也拷到学习委员处,统一拷给我)。

所交项目包括:考试报告打印版,小论文打印版(两个装订在一起,考试报告在上,小论文在下,最好做一个统一的封皮),考试报告doc 文档,小论文doc 文档。

Matlab 上机考试试题1.求下列联立方程的解3x+4y-7z-12w=45x-7y+4z+ 2w=-3X +8z- 5w=9-6x+5y-2z+10w=-8(1)求系数矩阵的秩; (2)求出方程组的解。

2.在[-10,10;-10,10]范围内画出函数2222sin y x y x z ++=的三维图形。

3.试画出系统321()221H s s s s =+++的零极点分布图,判断系统是否稳定,同时求其单位冲激响应和频率响应(幅频特性和相频特性)。

4. 将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。

(1)]22[)cos(ππ,,-∈x x (曲线图); (2)4)y 2,-4x (-242),(2222≤≤≤≤+=;y x y x f (曲面图)。

5.系统传递函数为1121()10.81z H z z z---+=-+,按照以下要求求解: (1)求其极零点图,判断系统的稳定性,画出系统的频谱特性;(2)当系统输入信号为:()[5cos(0.2)2sin(0.7)]x n n n ππ=++,050n ≤≤时,画出系统的输出。

Matlab 考题题整理 带答案

Matlab 考题题整理 带答案

MATLAB 考试试题(1)产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏)答案:a=10*rand(1,10)-5;b=sort(a,'descend')1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5]2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出:(A)B在A中的位置。

(B)把B放在A后面,形成C=‘ilovematlabmatlab’3. 请修改下面的程序,让他们没有for循环语句!A=[1 2 3; 4 5 6; 7 8 9];[r c]=size(A);for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2)A(i,j)=0;endendend4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里(output.xls),写完后文件看起来是这样的1 2 3 4 5 6 7 8 95.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。

6.编写M文件,从Yahoo网站批量读取60000.SH至.SH在2008年9月份的每日收盘价(提示:使用字符串函数)。

7. 将金牛股份()2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。

8.已知资产每日回报率为0.0025,标准差为0.0208,资产现在价值为0.8亿,求5%水平下资产的10天在险价值(Var)。

9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。

1、求下列联立方程的解3x+4y-7z-12w=45x-7y+4z+ 2w=-3x +8z- 5w=9-6x+5y-2z+10w=-8求系数矩阵的秩;求出方程组的解。

数值分析作业MATLAB

数值分析作业MATLAB

1.用二分法解方程 x-lnx=2 在区间【2 ,4】内的根方法: 二分法算法:f=inline('x-2-log(x)');a=2;b=4;er=b-a; ya=f(a);er0=.00001;while er>er0x0=.5*(a+b);y0=f(x0);if ya*y0<0b=x0;elsea=x0;ya=y0;enddisp([a,b]);er=b-a;k=k+1;end求解结果:>> answer13 43.0000 3.50003.0000 3.25003.1250 3.25003.1250 3.18753.1250 3.15633.1406 3.15633.1406 3.14843.1445 3.1484 3.1445 3.1465 3.1455 3.1465 3.1460 3.1465 3.1460 3.1462 3.1461 3.1462 3.1462 3.14623.1462 3.1462 3.1462 3.1462 3.1462 3.1462 最终结果为: 3.14622.试编写MATLAB 函数实现Newton 插值,要求能输出插值多项式。

对函数141)(2+=x x f 在区间[-5,5]上实现10次多项式插值。

Matlab 程序代码如下:%此函数实现y=1/(1+4*x^2)的n 次Newton 插值,n 由调用函数时指定 %函数输出为插值结果的系数向量(行向量)和插值多项式 算法:function [t y]=func5(n) x0=linspace(-5,5,n+1)'; y0=1./(1.+4.*x0.^2); b=zeros(1,n+1); for i=1:n+1 s=0; for j=1:i t=1; for k=1:iif k~=jt=(x0(j)-x0(k))*t;end;end;s=s+y0(j)/t;end;b(i)=s;end;t=linspace(0,0,n+1);for i=1:ns=linspace(0,0,n+1);s(n+1-i:n+1)=b(i+1).*poly(x0(1:i));t=t+s;end;t(n+1)=t(n+1)+b(1);y=poly2sym(t);10次插值运行结果:[b Y]=func5(10)b =Columns 1 through 4-0.0000 0.0000 0.0027 -0.0000Columns 5 through 8-0.0514 -0.0000 0.3920 -0.0000Columns 9 through 11-1.1433 0.0000 1.0000Y =- (7319042784910035*x^10)/147573952589676412928 + x^9/18446744073709551616 + (256*x^8)/93425 -x^7/1152921504606846976 -(28947735013693*x^6)/562949953421312 -(3*x^5)/72057594037927936 + (36624*x^4)/93425 -(5*x^3)/36028797018963968 -(5148893614132311*x^2)/4503599627370496 +(7*x)/36028797018963968 + 1b为插值多项式系数向量,Y为插值多项式。

(完整word版)同济大学数值分析matlab编程题汇编

(完整word版)同济大学数值分析matlab编程题汇编

MATLAB 编程题库 1.下面的数据表近似地满足函数21cxbax y ++=,请适当变换成为线性最小二乘问题,编程求最好的系数c b a ,,,并在同一个图上画出所有数据和函数图像.625.0718.0801.0823.0802.0687.0606.0356.0995.0628.0544.0008.0213.0362.0586.0931.0ii y x ----解:x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]'; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]'; A=[x ones(8,1) -x.^2.*y]; z=A\y;a=z(1); b=z(2); c=z(3); xh=-1:0.1:1;yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,'r+',xh,yh,'b*')2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数10 的近似根,并写出调用方式:精度为10解:>> edit gexianfa.mfunction [x iter]=gexianfa(f,x0,x1,tol)iter=0;while(norm(x1-x0)>tol)iter=iter+1;x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0));x0=x1;x1=x;end>> edit f.mfunction v=f(x)v=x.*log(x)-1;>> edit g.mfunction z=g(y)z=y.^5+y-1;>> [x1 iter1]=gexianfa('f',1,3,1e-10)x1 =1.7632iter1 =6>> [x2 iter2]=gexianfa('g',0,1,1e-10)x2 =0.7549iter2 =83.使用GS 迭代求解下述线性代数方程组:123123123521242103103x x x x x x x x x ì++=-ïïïï-++=íïïï-+=ïî解:>> edit gsdiedai.mfunction [x iter]=gsdiedai(A,x0,b,tol) D=diag(diag(A)); L=D-tril(A); U=D-triu(A); iter=0; x=x0;while((norm(b-A*x)./norm(b))>tol) iter=iter+1; x0=x;x=(D-L)\(U*x0+b); end>> A=[5 2 1;-1 4 2;1 -3 10]; >> b=[-12 10 3]'; >>tol=1e-4; >>x0=[0 0 0]';>> [x iter]=gsdiedai(A,x0,b,tol); >>x x =-3.0910 1.2372 0.9802 >>iter iter = 64.用四阶Range-kutta 方法求解下述常微分方程初值问题(取步长h=0.01),(1)2x dy y e xy dx y ìïï=++ïíïï=ïî解:>> edit ksf2.mfunction v=ksf2(x,y) v=y+exp(x)+x.*y;>> a=1;b=2;h=0.01; >> n=(b-a)./h; >> x=[1:0.01:2]; >>y(1)=2;>>fori=2:(n+1)k1=h*ksf2(x(i-1),y(i-1));k2=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k1); k3=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k2); k4=h*ksf2(x(i-1)+h,y(i-1)+k3); y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6; end >>y调用函数方法>> edit Rangekutta.mfunction [x y]=Rangekutta(f,a,b,h,y0) x=[a:h:b]; n=(b-a)/h; y(1)=y0; fori=2:(n+1)k1=h*(feval(f,x(i-1),y(i-1)));k2=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k1)); k3=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k2)); k4=h*(feval(f,x(i-1)+h,y(i-1)+k3)); y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6; end>> [x y]=Rangekutta('ksf2',1,2,0.01,2); >>y5.取0.2h =,请编写Matlab 程序,分别用欧拉方法、改进欧拉方法在12x ≤≤上求解初值问题。

MATLAB计算与编程练习题参考答案

MATLAB计算与编程练习题参考答案

MATLAB计算与编程练习题参考答案以下是MATLAB计算与编程练习题的参考答案,希望能对您的学习有所帮助。

1. 编写一个MATLAB程序,计算并输出1到100之间所有奇数的和。

```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB函数,接受一个参数n,计算并返回1到n之间所有偶数的平方和。

```matlabfunction result = even_squared_sum(n)result = 0;for i = 2:2:nresult = result + i^2;end```3. 编写一个MATLAB程序,生成并输出一个5x5的随机矩阵,然后计算并输出矩阵的转置。

```matlabmatrix = randi([1, 10], 5, 5);disp(matrix);transposed_matrix = matrix';disp(transposed_matrix);```4. 编写一个MATLAB函数,接受两个参数a和b,计算并返回a和b的最大公约数。

```matlabfunction gcd = compute_gcd(a, b)while b ~= 0temp = b;b = mod(a, b);a = temp;gcd = a;end```5. 编写一个MATLAB程序,读取一个文本文件,统计并输出文件中每个字符的出现次数。

```matlabfilename = 'text.txt';file = fopen(filename, 'r');content = fscanf(file, '%c');fclose(file);characters = unique(content);count = zeros(size(characters));for i = 1:length(characters)count(i) = sum(content == characters(i));enddisp([characters; count]);```6. 编写一个MATLAB程序,生成一个100个元素的斐波那契数列,并绘制该数列的图形。

matlab习题及答案

matlab习题及答案

matlab习题及答案《Matlab习题及答案:提升编程技能,解决实际问题》Matlab是一种强大的数值计算和数据分析工具,它被广泛应用于工程、科学和其他领域的计算和模拟。

为了帮助大家提升编程技能,解决实际问题,我们为大家准备了一些Matlab习题及答案,希望能够帮助大家更好地掌握Matlab的使用。

1. 习题一:编写一个Matlab程序,计算斐波那契数列的前20个数字,并将结果打印出来。

答案:下面是一个简单的Matlab程序,用于计算斐波那契数列的前20个数字。

```matlaba = 0;b = 1;fib = zeros(1, 20);fib(1) = a;fib(2) = b;for i = 3:20fib(i) = fib(i-1) + fib(i-2);enddisp(fib);```2. 习题二:编写一个Matlab程序,求解一个二次方程ax^2 + bx + c = 0的根。

答案:下面是一个简单的Matlab程序,用于求解二次方程的根。

```matlaba = 1;b = -3;c = 2;delta = b^2 - 4*a*c;if delta > 0x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);disp(['The roots are ', num2str(x1), ' and ', num2str(x2)]);elseif delta == 0x = -b/(2*a);disp(['The root is ', num2str(x)]);elsedisp('The equation has no real roots');end```通过以上两个习题及答案的示例,我们可以看到Matlab的强大功能和灵活性。

通过练习这些习题,我们可以更好地掌握Matlab的基本语法和常用函数,从而在实际问题中更快更准确地解决数值计算和数据分析的挑战。

同济大学数值阐发matlab编程题汇编

同济大学数值阐发matlab编程题汇编
8
2
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

MATLAB练习题和答案

MATLAB练习题和答案

MATLAB练习题和答案MATLAB练习题和答案控制系统仿真实验Matlab部分实验结果⽬录实验⼀MATLAB基本操作 (1)实验⼆Matlab编程 (8)实验三Matlab底层图形控制 (10)实验四控制系统古典分析 (23)实验五控制系统现代分析 (28)实验六PID控制器的设计 (35)实验七系统状态空间设计 (40)实验九直流双闭环调速系统仿真 (44)实验⼀ MATLAB 基本操作1 ⽤MATLAB 可以识别的格式输⼊下⾯两个矩阵12332357135732391894A ??=??144367823355422675342189543ii B i +??+?=+?再求出它们的乘积矩阵C ,并将C 矩阵的右下⾓2×3⼦矩阵赋给D 矩阵。

赋值完成后,调⽤相应的命令查看MATLAB ⼯作空间的占⽤情况。

A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4];B=[1+4i,4,3,6,7,8;2,3,3,5,5,4+2i;2,6+7i,5,3,4,2;1,8,9,5,4,3]; C=A*B;D=C(4:5,4:6); whosName Size Bytes Class AttributesA 5x4 160 doubleB 4x6 384 doublecomplexC 5x6 480 double complexD 2x3 96 double complex2 选择合适的步距绘制出下⾯的图形(,)t∈-sin(/)t,其中111t=[-1:0.1:1];y=sin(1./t);plot(t,y)3 对下⾯给出的各个矩阵求取矩阵的⾏列式、秩、特征多项式、范数、特征根、特征向量和逆矩阵。

75350 083341009103150037193......A =??-????,5765710876810957910B ??=12345678910111213141516C=,33245518118575131D --??-?=----A=[7.5,3.5,0,0;8,33,4.1,0;0,9,103,-1.5;0,0,3.7,19.3];B=[5,7,6,5;7,10,8,7;6,8,10,9;5,7,9,10];C=[1:4;5:8;9:12;13:1rtf6];D=[3,-3,-2,4;5,-5,1,8;11,8,5,-7;5,-1,-3,-1];det(A);det(B);det(C);det(D); rank(A); rank(B); rank(C); rank(D); a=poly(A); b=poly(B); c=poly(C); d=poly(D);norm(A);norm(B);norm(C);norm(D);[v,d]=eig(A,'nobalance');[v,d]=eig(B,'nobalance');[v,d]=eig(C,'nobalance');[v,d]=eig(D,'nobalance');m=inv(A);n=inv(B);p=inv(C);q=inv(D);4 求解下⾯的线性代数⽅程,并验证得出的解真正满⾜原⽅程。

(完整word版)matlab数值分析例题

(完整word版)matlab数值分析例题

1、 在MATLAB 中用Jacobi 迭代法讨论线性方程组,1231231234748212515x x x x x x x x x -+=⎧⎪-+=-⎨⎪-++=⎩(1)给出Jacobi 迭代法的迭代方程,并判定Jacobi 迭代法求解此方程组是否收敛。

(2)若收敛,编程求解该线性方程组.解(1):A=[4 -1 1;4 —8 1;-2 1 5] %线性方程组系数矩阵A =4 -1 1 4 -8 1 —2 1 5>> D=diag(diag(A))D =4 0 0 0 —8 0 0 0 5〉〉 L=—tril (A,-1) % A 的下三角矩阵L =0 0 0 —4 0 0 2 —1 0〉〉U=-triu(A,1)% A的上三角矩阵U =0 1 —10 0 —10 0 0B=inv(D)*(L+U)% B为雅可比迭代矩阵B =0 0.2500 —0。

25000.5000 0 0.12500。

4000 —0.2000 0〉〉r=eigs(B,1)%B的谱半径r =0。

3347 〈1Jacobi迭代法收敛。

(2)在matlab上编写程序如下:A=[4 —1 1;4 -8 1;—2 1 5];〉〉b=[7 —21 15]';>〉x0=[0 0 0]’;〉〉[x,k]=jacobi(A,b,x0,1e—7)x =2。

00004.00003。

0000k =17附jacobi迭代法的matlab程序如下:function [x,k]=jacobi(A,b,x0,eps)% 采用Jacobi迭代法求Ax=b的解%A为系数矩阵%b为常数向量%x0为迭代初始向量%eps为解的精度控制max1= 300; %默认最多迭代300,超过300次给出警告D=diag(diag(A));%求A的对角矩阵L=-tril(A,—1); %求A的下三角阵U=—triu(A,1); %求A的上三角阵B=D\(L+U);f=D\b;x=B*x0+f;k=1;%迭代次数while norm(x-x0)>=epsx0=x;x=B*x0+f;k=k+1;if(k〉=max1)disp(’迭代超过300次,方程组可能不收敛’);return;endend2、设有某实验数据如下:(1)在MATLAB中作图观察离散点的结构,用多项式拟合的方法拟合一个合适的多项式函数;(2)在MATLAB中作出离散点和拟合曲线图。

matlab经典编程例题30道

matlab经典编程例题30道

MATLAB是一款功能强大的数学软件,其编程功能也受到越来越多人的关注。

下面介绍的是30个matlab经典编程例题,可以帮助大家熟悉matlab的编程语法,提高matlab 编程技能。

1. 请编写一个程序,计算出两个数的和。

2. 请编写一个程序,计算出两个数的最大值和最小值。

3. 请编写一个程序,计算出一组数据的平均值和标准差。

4. 请编写一个程序,将一个矩阵转置。

5. 请编写一个程序,求出两个矩阵的乘积。

6. 请编写一个程序,求出一个矩阵的逆矩阵。

7. 请编写一个程序,求出一个矩阵的行列式。

8. 请编写一个程序,计算出一元二次方程的解。

9. 请编写一个程序,计算出两个数组的相似度。

10. 请编写一个程序,计算出一个矩阵的特征值和特征向量。

11. 请编写一个程序,求出两个矩阵的秩。

12. 请编写一个程序,求出一个矩阵的特定元素。

13. 请编写一个程序,求出一组数据的最高值和最低值。

14. 请编写一个程序,求出两个数组的交集。

15. 请编写一个程序,求出一个矩阵的行和列之和。

16. 请编写一个程序,使用循环语句计算出100以内所有奇数的和。

17. 请编写一个程序,使用循环语句计算出1到1000以内的和。

18. 请编写一个程序,使用递归函数计算出斐波那契数列的第n项。

19. 请编写一个程序,求出一个多项式的导数。

20. 请编写一个程序,求出一个函数的极值点。

21. 请编写一个程序,求出一个数组的非零元素个数。

22. 请编写一个程序,计算出函数的不定积分。

23. 请编写一个程序,计算出函数的定积分。

24. 请编写一个程序,求出一个矩阵的秩。

25. 请编写一个程序,求出函数的极限值。

26. 请编写一个程序,求出一个矩阵的特征值分解。

27. 请编写一个程序,求出一个矩阵的LU分解。

28. 请编写一个程序,求出一个矩阵的QR分解。

29. 请编写一个程序,求出三次多项式的根。

30. 请编写一个程序,求出一个函数的积分。

同济大学数值分析历年程序解答

同济大学数值分析历年程序解答

第二章线性方程组直接解法追赶法function x=zhuigan(A,d)[n n]=size(A);for i=1:nif i==1 %这里要注意==l(i)=A(i,i);y(i)=d(i)/l(i);u(i)=A(i,i+1)/l(i);elsel(i)=A(i,i)-A(i,i-1)*u(i-1);y(i)=(d(i)-y(i-1)*A(i,i-1))/l(i);ifi<nu(i)=A(i,i+1)/l(i);endendendx(n)=y(n);fori=n-1:-1:1x(i)=y(i)-u(i)*x(i+1);end%ai,bi,ci在程序里需要按照其在A矩阵中的位置写出,所以要把矩阵写出来,看其位置写相应的项第三章函数插值y1=interp1(x,y,x1,'linear') %线性插值,根据x,y表示的函数,计算x1处的函数值y1=interp1(x,y,x1,'cubic')%三次多项式插值y1=interp1(x,y,x1,'spline')%三次样条插值第四章函数逼近/拟合x=[0.24 0.65 0.95 1.24 1.73 2.01 2.23 2.52 2.77 2.99]'; %任意选取拟合函数的最小二乘程序y=[0.23 -0.26 -1.10 -0.45 0.27 0.1 -0.29 0.24 0.56 1]';A=[log(x) cos(x) exp(x)];z=A\y%A矩阵为选取函数各点值构成的矩阵,z为系数矩阵,求解系数,等价于解方程A*z=yx=[0 0.25 0.5 0.75 1]'; %多项式拟合的最小二乘程序y=[1 1.284 1.6487 2.117 2.7183]';x1=ones(5,1);A=[x1 x x.^2];z=A\yp=polyfit(x,y,n); %多项式最小二乘拟合dp=polyder(p); %多项式求导y=polyval(dp,x) %多项式求值函数,这里求的是点x处导数值第五章求积公式function I=mid(f,a,b,n) %中点公式h=(b-a)/n;x=a+h/2:h:b-h/2; %中点自变量的值y=feval(f,x);I=h*sum(y);function I=trapeze(f,a,b,n) %梯型公式h=(b-a)/n;x=a:h:b;y=feval(f,x);I=h/2*(y(1)+2*sum(y(2:n))+y(n+1)); %f=h/2*[f(a)+2f(xi)+f(b)]function I=simpson(f,a,b,n) %simpson公式h=(b-a)/(2*n);x=a:h:b;y=feval(f,x);I=h/3*(y(1)+4*sum(y(2:2:2*n))+2*sum(y(3:2:2*n-1))+y(2*n+1));%f=h/3*[f(a)+4f(ou)+2f(ji)+f(b)]第六章线性方程组的迭代解Jacobi迭代function [x,iter]=jacobi(A,b,tol); % Ax=b ,iter迭代次数D=diag(diag(A)); % (D-L-U)x=bL=D-tril(A); % Dx=Lx+Ux+bU=D-triu(A);x=zeros(size(b));foriter=1:50000;x=D\(L+U)*x+D\b;error=norm(A*x-b)/norm(b);if error<tolbreak;endend高斯-赛德尔迭代function [x,iter]=gs(A,b,tol); % Ax=b ,iter迭代次数D=diag(diag(A)); % (D-L-U)x=bL=D-tril(A); % (D-L)x=+Ux+bU=D-triu(A);x=zeros(size(b));foriter=1:50000;x=(D-L)\U*x+(D-L)\b;error=norm(A*x-b)/norm(b);if error<tolbreak;endend第七章非线性方程求根二分法function x=erfen(f,a,b,tol) %二分法求解方程f(x)=0,a,b,为给定的初始区间,应满足f(a)*f(b)<0while 1c=(a+b)/2;if norm(a-b)<=tolx=a;returnendy1=feval(f,a);y2=feval(f,c);if sign(y1)==sign(y2)a=c;elseb=c;endend牛顿法function [x,it]=Newton(f,df,x0,maxit,tol) %求解方程f(x)=0% it迭代次数, maxit,最大迭代次数, tol,迭代精度f求解的函数df,f的导数it=0;while 1;x=x0-feval(f,x0)/feval(df,x0); %注意除号方向it=it+1;if norm(x-x0)<=tol %需要用norm函数防止x-x0小于0的情况returnelsex0=x;endif it>=maxiterror('Newton method needs more itrations')returnendend第八章矩阵特征值和特征向量幂法function [lam x]=eigIPower(A,x0,tol)v0=x0;[m n]=max(abs(x0));lam0=v0(n);u0=v0/lam0;while 1v1=A*u0;[m n]=max(abs(v1));lam1=v1(n);u1=v1/lam1;if abs(lam1-lam0)<=tollam=lam1;x=u1;returnendu0=u1;lam0=lam1;end%幂法求解Ax=lam*x最大特征值和特征向量lam最大特征值,x对应的特征向量,x0迭代初始向量,tol迭代精度第九章常微分方程初值问题Euler法function [x y]=odeEuler(f,y0,a,b,n)y(1)=y0;h=(b-a)/n;x=a:h:b;fori=1:ny(i+1)=y(i)+h*feval(f,x(i),y(i));end% x,自变量值y,函数值f导数/增量函数y0初值a,b,n求解区间开始点,终止点,划分区间数改进Euler法function [x y]=odeIEuler(f,y0,a,b,n)y(1)=y0;h=(b-a)/n;x=a:h:b;fori=1:ny1=y(i)+h*feval(f,x(i),y(i));y(i+1)=y(i)+0.5*h*(feval(f,x(i),y(i))+feval(f,x(i+1),y1));end%x,自变量值y,函数值f导数/增量函数y0初值a,b,n求解区间开始点,终止点,划分区间数%两点导取平均,用下一个点的预估值算下一个点的导数值Runge-Kutta法function [x y]=RungeKutta(f,y0,a,b,n)y(1)=y0;h=(b-a)/n;x=a:h:b;fori=1:ny1=h*feval(f,x(i),y(i));y2=h*feval(f,x(i)+0.5*h,y(i)+0.5*y1);y3=h*feval(f,x(i)+0.5*h,y(i)+0.5*y2);y4=h*feval(f,x(i)+h,y(i)+y3);y(i+1)=y(i)+1/6*(y1+2*y2+2*y3+y4);end%起点处,中点处,终点处导数值按1:2:2:1取平均注:1.以上所附程序均经运行调试,并以课本上相应实例进行检验,无误。

同济大学数值分析matlab编程题汇编.doc

同济大学数值分析matlab编程题汇编.doc

同济大学数值分析matlab编程题汇编.MATLAB编程题库1.下面的数据表近似地满足函数,请适当变换成为线性最小二乘问题,编程求最好的系数,并在同一个图上画出所有数据和函数图像。

解:x=[-x=[:文件一文件二函数v=f(x)v=x . * log(x)-1;函数z=g(y)z=y. y-1;解以下内容:编辑gex AFA。

m函数[x ITER]=gex AFA(f,x0,x1,tol)ITER=0;而(标准(x1-编辑gex AFA。

m函数[x ITER )=gex AFA(f,x0,x1,tol)ITER=0;同时(标准(x1:解以下内容:编辑gsdiedai。

m函数[x iter]=gsdiedai(A,x0,b,tol)D=diag(diag(A));函数[x iter]=gsdiedai(A,x0,b,tol)D=diag(diag(A));L=D:编辑ksf 2。

m函数v=ksf2(x,y)v=y exp(x)x . * y;a=1;b=2;h=0.01n=(b-a)./h .x=[1:0.01:2];y(1)-省略部分-0.5000 1.0000 0.5000-1.0000 1.0000 UU=2.0000 3.0000 4.0000 0-0.5000 7.0000 0 0-1.0000 x=林空间(0,1,11);x ' ans=0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.90001.0000 x=[1 2 3 4];y=[6 11 18 27];p=polyfit(x,y,2)p=1.0000 2.0000 3.0000 diag(1(4,1),1)ans=0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 012 .编程实现求解满足下列条件的区间[-1,2]上的三次样条函数S(x),并画出此样条函数的图形: Xi-1 0 1 2 f(Xi)-1 0 1 0f(Xi)' 0-1函数splx=[-1 0 1 2]y=[0-1 0 1 0-1]PP=csape(x,y,'完整')[断点coefs、npolys、ncoefs、dim]=unmkpp(PP)xh=-1:0.133602 if-1=xh=0 yh=coefs(1,1)*(xh 1).3系数(1,2)*(xh 1).2系数(1,3)*(xh 1)系数(1,4)否则,如果0=xh=1 yh=系数(2,1)*(xh).3系数(2,2)*(xh).2系数(2,3)*(xh)系数(2,4)否则,如果1=xh=2 yh=系数(3,1)*(xh-1).3系数(3,2)*(xh-1).2系数(3,3)*(xh-1)系数(3,4)否则返回图(xh,yh,' r ')13 .二分法程序如果nargintol x=(a b)/2 fx=feval(f,x)如果符号(外汇)==符号(fa) a=x fa=fx elseif符号(外汇)==符号b=x FB=FX否则返回结束。

Matlab考试题库及答案+要点总结

Matlab考试题库及答案+要点总结

一、 辨析题(共2小题,每题 5 分,共计 10 分) 二、 问答题(共3小题,每题 5 分,共计 15 分) 三、 计算题(共7小题,每题 5 分,共计 35 分) 四、 编程题(共4小题,每题 10 分,共计 40 分)填空题(计算部分)1、标点符号; _______可以使命令行不显示运算结果,%——用来表示该行为注释行。

2、x 为0 ~4pi ,步长为0.1pi 的向量,使用命令_______创建。

x=0:0.1*pi:4*pi3、输入矩阵A=[1323−57569] ,使用全下标方式用A(2,2) 取出元素“-5 ”,使用单下标方式用_______取出元素“-5 ”。

A(5)4、符号表达式sin(2*a+t)+m 中独立的符号变量为_______。

t 5、M 脚本文件和M 函数文件的主要区别是M 脚本文件没有函数定义和M 函数文件有函数定义_______。

6. 设x 是一维数组,x 的倒数第3个元素表示为_______; 设y 为二维数组,要删除y 的第34行和48列,可使用命令_______; _______; x(_end-2_) y(34,:)=[] y(:,48)=[]7. 将变量x 以Ascii 文本格式存储到文件fname.txt ,应使用命令_________ _;save _x8. 在while 表达式, 语句体, End 循环语句中,表达式的值__ __时表示循环条件为真,语句体将被执行,否则跳出该循环语句;非零9.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she?”,应使用命令_________;x=input(‘Who is she?’,’s’)_10.设A=(a ij )m∗n 和B=(b ij )m∗n 和C=(c ij )m∗n 均为m*n 矩阵,且存在于WorkSpace中,要产生矩阵D=(a ij −c ij b ij cij ⁄)m∗n,可用命令________ _,计算|(A ′B )−1|可用命令________;D=(A-C)/B.^Cdet(inv(A’*B)11. 在MATLAB命令窗口中的“>>”标志为MATLAB的_______提示符,“│”标志为_______提示符。

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

MATLAB 编程题库1.下面的数据表近似地满足函数21cxbax y ++=,请适当变换成为线性最小二乘问题,编程求最好的系数c b a ,,,并在同一个图上画出所有数据和函数图像.625.0718.0801.0823.0802.0687.0606.0356.0995.0628.0544.0008.0213.0362.0586.0931.0ii y x ----解:x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]'; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]'; A=[x ones(8,1) -x.^2.*y]; z=A\y;a=z(1); b=z(2); c=z(3); xh=-1:0.1:1;yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,'r+',xh,yh,'b*')2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数10 的近似根,并写出调用方式:精度为10>> edit gexianfa.mfunction [x iter]=gexianfa(f,x0,x1,tol)iter=0;while(norm(x1-x0)>tol)iter=iter+1;x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0));x0=x1;x1=x;end>> edit f.mfunction v=f(x)v=x.*log(x)-1;>> edit g.mfunction z=g(y)z=y.^5+y-1;>> [x1 iter1]=gexianfa('f',1,3,1e-10)x1 =1.7632iter1 =6>> [x2 iter2]=gexianfa('g',0,1,1e-10)x2 =0.7549iter2 =83.使用GS 迭代求解下述线性代数方程组:123123123521242103103x x x x x x x x x解:>> edit gsdiedai.mfunction [x iter]=gsdiedai(A,x0,b,tol) D=diag(diag(A)); L=D-tril(A); U=D-triu(A); iter=0; x=x0;while((norm(b-A*x)./norm(b))>tol) iter=iter+1; x0=x;x=(D-L)\(U*x0+b); end>> A=[5 2 1;-1 4 2;1 -3 10]; >> b=[-12 10 3]'; >>tol=1e-4; >>x0=[0 0 0]';>> [x iter]=gsdiedai(A,x0,b,tol); >>x x =-3.0910 1.2372 0.9802 >>iter iter = 64.用四阶Range-kutta 方法求解下述常微分方程初值问题(取步长h=0.01),(1)2xdyy e xy dxy解:>> edit ksf2.mfunction v=ksf2(x,y) v=y+exp(x)+x.*y;>> a=1;b=2;h=0.01; >> n=(b-a)./h; >> x=[1:0.01:2]; >>y(1)=2;>>fori=2:(n+1)k1=h*ksf2(x(i-1),y(i-1));k2=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k1); k3=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k2); k4=h*ksf2(x(i-1)+h,y(i-1)+k3); y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6; end >>y调用函数方法>> edit Rangekutta.mfunction [x y]=Rangekutta(f,a,b,h,y0) x=[a:h:b]; n=(b-a)/h; y(1)=y0; fori=2:(n+1)k1=h*(feval(f,x(i-1),y(i-1)));k2=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k1)); k3=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k2)); k4=h*(feval(f,x(i-1)+h,y(i-1)+k3)); y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6; end>> [x y]=Rangekutta('ksf2',1,2,0.01,2); >>y5.取0.2h =,请编写Matlab 程序,分别用欧拉方法、改进欧拉方法在12x ≤≤上求解初值问题。

3,(1)0.4dy yx dx x y解:>> edit Euler.mfunction [x y]=Euler(f,a,b,h,y0) x=[a:h:b]; n=(b-a)./h; y(1)=y0; fori=2:(n+1)y(i)=y(i-1)+h*feval(f,x(i-1),y(i-1)); end>> edit gaijinEuler.mfunction[x y]=gaijinEuler(f,a,b,h,y0) x=[a:h:b]; n=(b-a)./h; y(1)=y0; fori=2:(n+1)y1=y(i-1)+h*feval(f,x(i-1),y(i-1)); y2=y(i-1)+h*feval(f,x(i),y1); y(i)=(y1+y2)./2; end>> edit ksf3.mfunction v=ksf3(x,y) v=x.^3-y./x;>>[x y]=Euler('ksf3',1,2,0.2,0.4) x =1.0000 1.2000 1.4000 1.6000 1.80002.0000 y =0.4000 0.5200 0.7789 1.2165 1.8836 2.8407>> [x y]=gaijinEuler('ksf3',1,2,0.2,0.4) x =1.0000 1.2000 1.4000 1.6000 1.80002.0000 y =0.4000 0.5895 0.9278 1.4615 2.2464 3.34666.请编写复合梯形积分公式的Matlab程序,计算下面积分的近似值,区间等分20n=。

编写辛普森积分公式的Matlab程序,计算下面积分的近似值,区间等分10n=。

12 011dxx 、11sin xdxx解:>> edit tixingjifen.mfunction s=tixingjifen(f,a,b,n)x=linspace(a,b,(n+1));y=zeros(1,length(x));y=feval(f,x)h=(b-a)./n;s=0.5*h*(y(1)+2*sum(y(2:n))+y(n+1));end>> edit simpson.mfunction I=simpson(f,a,b,n)h=(b-a)/n;x=linspace(a,b,2*n+1);y=feval(f,x);I=(h/6)*(y(1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n))+y(2*n+1));>> edit ksf4.mfunction v=ksf4(x)v=1./(x.^2+1);>>tixingjifen('ksf4',0,1,20)ans =0.7853>>simpson('ksf4',0,1,10)ans =0.7854>> edit ksf5.mfunction v=ksf5(x)if(x==0)v=1;elsev=sin(x)./x;end(第二个函数‘ksf5’调用求积函数时,总显示有错误:“NaN”,还没调试好。

见谅!)7.用Jacobi 迭代方法对下面方程组求解,取初始向量(0)(3,2,1)T x=-。

123244233334422x x x -⎡⎤⎛⎫⎛⎫ ⎪ ⎪⎢⎥=- ⎪ ⎪⎢⎥ ⎪ ⎪⎢⎥-⎣⎦⎝⎭⎝⎭解:>>edit Jacobi.mfunction[x iter]=Jacobi(A,x0,b,tol) D=diag(diag(A)); L=D-tril(A); U=D-triu(A); x=x0; iter=0;while(norm(A*x-b)/norm(b)>tol) iter=iter+1; x0=x;x=D\((L+U)*x0+b); end>> A=[2 4 -4;3 3 3;4 4 2]; >> b=[2 -3 -2]'; >>x0=[3 2 -1]';>> [x,iter]=Jacobi(A,x0,b,1e-4) x = 1 -1 -1 iter =38.用牛顿法求解方程cos 20x x +=在02x =附近的根。

解:>> edit Newton.mfunction [x iter]=Newton(f,g,x0,tol) iter=0; done=0 while ~donex=x0-feval(f,x0)/feval(g,x0); done=norm(x-x0)<=tol; iter=iter+1;if ~done,x0=x; end end>> edit ksf6.m function v=ksf6(x) v=x*cos(x)+2;>> edit ksg6.m function z=ksg(y) z=y.^5+y-1;>> [x iter]=Newton('ksf6','ksg6',2,1e-4) x =2.4988 iter = 39.分别用改进乘幂法、反幂法计算矩阵A 的按模最大特征值及其对应的特征向量、按模最小特征值及其对应的特征向量。

相关文档
最新文档