您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > matlab编程及其应用
实验报告8课程数学实验与数学软件实验名称matlab编程及其应用第1页一、实验目的1.了解m文件的创建与编辑的基本方法。2.了解格式输入与输出函数input\disp\fprintf的格式和用法。3.了解if\switch的结构和用法。4.了解for\while循环的的结构和用法。5.了解编程的基本思想,并能够应用与求解实际问题。二、实验内容1、用编程的方法建立下面矩阵:1)2)P53,5.(6)3)P53,5.(7)4)000000000100000000010900000001098000000109870000010987600001098765000109876540010987654301098765432109876543212、求微分方程的通解或特解P97,1—33、用编程方法求向量组的秩、一个极大线性无关组,并将其余的向量用极大无关组来线性表示:a1=[1,-1,2,4]a2=[0,3,1,2]a3=[3,0,7,14]a4=[2,1,5,6]a5=[1,-1,2,0]4.求线性方程组的一个特解和一个基础解系:5、在[-22]x[-22]上绘制下列图形:6.试说明下面两段程序的功能,最后两个x值为多少?x=1;whilex+xx,x=x/2;endx=1;whilex+xx,x=2*x;end7.已知sin(x)的幂级数展开公式为试利用这个公式和第5题中的技巧,计算sin(/2)和sin(31/2)的值,并与Matlab自带的sin函数比较,误差分别多大?为什么?三、实验环境(1)硬件:PC机(2)软件:Windows操作系统、matlab7.0四、实验步骤:1、(1)clearclcformatratfork=1:10forl=1:10ifk==lA(k,l)=1/k;elseifk==l+1A(k,l)=1;elseifl==k+1A(k,l)=1;elseA(k,l)=0;endendendA(2)、clearclcformatratfork=1:10forl=1:10A(k,l)=1/(k+l)endend(3)、clearclcfork=1:5forl=1:5ifk==lA(k,l)=2004;elseifl==k+1A(k,l)=10*l;endendendA(4)、clearclcfork=1:10forl=1:10ifk+l==11A(k,l)=10;elseifk+l==12A(k,l)=9;elseifk+l==13A(k,l)=8;elseifk+l==14A(k,l)=7;elseifk+l==15A(k,l)=6;elseifk+l==16A(k,l)=5;elseifk+l==17A(k,l)=4;elseifk+l==18A(k,l)=3;elseifk+l==19A(k,l)=2;elseifk+l==20A(k,l)=1;elseA(k,l)=0endendendA2、(1)symsxyy=dsolve('(x*x-1)*Dy+2*x*y-sin(x)=0','x')(2)symsxyy=dsolve('D2y-2*Dy+5*y=exp(x)*sin(x)','x')(3)clearclcsymsxyt[x,y]=dsolve('Dx+x+y=0,Dy+x-y=0','x(0)=1,y(0)=0','t')ezplot(x,y)3、clccleara1=input('请输入第1个向量a1=');a2=input('请输入第2个向量a2=');a3=input('请输入第3个向量a3=');a4=input('请输入第4个向量a4=');a5=input('请输入第5个向量a5=');A=[a1',a2',a3',a4',a5'][R,S]=rref(A);[m,n]=size(A);r=length(S);ifn==rfprintf('给定的向量组是线性无关的。\n')elsefprintf('\n')fprintf('给定的向量组是线性相关的。\n')fprintf('\n')fprintf('给定的向量组的秩为%d。\n',r)fprintf('\n')fprintf('给定的向量组的一个极大线性无关组为:\n')fori=1:rfprintf('a%d',S(i))A(:,S(i))'fprintf('\n')endb=1:n;fori=1:rb(S(i))=0;B=find(b);endforj=1:(n-r)fprintf('a%d=',B(j))T=R(:,B(j));fori=1:rfprintf('%d*a%d+',T(i),S(i))endfprintf('\b\b\n')endend4、clcclearA=[1,1,1,0,0;1,1,-1,-1,-2;2,2,0,-1,-2;5,5,-3,-4,-8];b=[0;1;1;4]r1=rank(A);r2=rank([A,b]);n=size(A,2);ifr1==r2fprintf('原方程无解\n')elseifr1==nfprintf('原方程有唯一解:\n')formatratx0=A\bformatelsefprintf('原方程有无穷多个解\n')fprintf('其中原方程的一个特解为:\n')[R,S]=rref([A,b]);X0=zeros(size(A,2),1);T=R(:,end);fork=1:length(S)X0(S(k))=T(k);endformatratX0fprintf('原方程组对应的齐次线性方程组的基础解系为:\n')X=null(A,'r')formatendend5、实验结果与讨论、1、(1):实验结果为A=Columns1through611000011/21000011/31000011/41000011/51000011/6000001000000000000000000Columns7through100000000000000000000010001/710011/810011/91(2):实验结果为:A=Columns1through61/21/31/41/51/61/71/31/41/51/61/71/81/41/51/61/71/81/91/51/61/71/81/91/101/61/71/81/91/101/111/71/81/91/101/111/121/81/91/101/111/121/131/91/101/111/121/131/141/101/111/121/131/141/151/111/121/131/141/151/16Columns7through101/81/91/101/111/91/101/111/121/101/111/121/131/111/121/131/141/121/131/141/151/131/141/151/161/141/151/161/171/151/161/171/181/161/171/181/191/171/181/191/20(3)实验结果为:A=20042000002004300000200440000020045000002004(4):实验结果为:A=Columns1through6000000000000000000000000000001000001090001098001098701098761098765Columns7through10000100010901098109879876876576546543543243212、(1):实验结果为:y=(-cos(x)+C1)/(x^2-1)(2)实验结果为:y=exp(x)*sin(2*x)*C2+exp(x)*cos(2*x)*C1+1/3*exp(x)*sin(x)(3)实验结果为:x=(1/2-1/4*2^(1/2))*exp(2^(1/2)*t)+(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)y=-(1/2-1/4*2^(1/2))*2^(1/2)*exp(2^(1/2)*t)+(1/2+1/4*2^(1/2))*2^(1/2)*exp(-2^(1/2)*t)-(1/2-1/4*2^(1/2))*exp(2^(1/2)*t)-(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)3、A=10321-1301-121752421460给定的向量组是线性相关的。给定的向量组的秩为3。给定的向量组的一个极大线性无关组为:a1ans=1-124a2ans=0312a4ans=2156a3=3*a1+1*a2+0*a4a5=-1*a1+-1*a2+1*a44、b=0114原方程无解6、总结(1):在编程中常常会把end给漏掉;(2):对于高代中的知识点总是记得不是太清楚,导致判断最大线性无关和秩等都不太会做。
本文标题:matlab编程及其应用
链接地址:https://www.777doc.com/doc-7784898 .html