1、 A+B 0 4 3 5 6 9 3 1 2 A*B 7 7 9 13 19 21 1 3 1 norm(A) 9.5758 A(-1) -0.8333 0.3333 0.5000 -0.3333 0.3333 -1.0000 0.8333 -0.3333 0.5000例1-8 显示上例中矩阵A的第2行第3列元素,并对其进行修改. A(2,3) 6 A(2,3)=1; 1例1-9 分别画出函数和在区间-6,6上的图形。x=(-6)*pi:0.01:6*pi;y=(x.2).*cos(x);z=sin(x)./x;plot(x,y);figure,plot(x,z);例1-10 试求方程组的解。
2、 a=1,2,1;4,2,-6;-1,0,2; b=2;3;4; x=ab -30.0000 22.5000 -13.0000例1-11 试求矩阵方程 b=1,2,3;1,1,1; x=b/a 3.0000 -2.0000 -6.0000 2.0000 -1.5000 -5.0000例1-12 建立同时计算的函数。即任给a,b,n三个数,返回y1,y2.function mianfunction()disp(num2str(y1(1,2,3)disp(num2str(y2(1,2,3) function y=y1(a,b,n) y=(a+b)n; end function y=y2(a,b,n
3、) y=(a-b)n;end运行显示: mainfuction27-1例1-13 设,试画出在0,2上的曲线段。 % 加坐标网格x=linspace(0,2);y=1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6;grid on;例如:对于例题1-13中所定义的f(x),求其零点c. x=solve(1/(x-0.3)2+0.01)+1/(x-0.9)2+0.04)-6=0,x) -0.131*960646637049059278162 1.2995496825848217892317327263734 0.6160341677573923385693789332
4、0409 - 0.22190336322056809485939175107611i 0.61603416775739233856937893320409 + 0.22190336322056809485939175107611i求一元函数最小值(fminbnd命令)由于fminbnd只能求一个最小值,通过观察函数可知极小值点为-和+ x=fminbnd(y,0,inf) Inf y=(x)1/(x-0.3)2+0.01)+1/(x-0.9)2+0.04)-6; x,y=fminbnd(y,0,inf) -6 x,y=fminbnd(y,-inf,0)%运行该命令时会报错,因为这里的x为NAN
5、,这可能是因为fmindnd或optimget函数的代码有bug导致求例题1-13中所定义f(x)在0,1上的定积分. syms x; int(1/(x-0.3)2+0.01)+1/(x-0.9)2+0.04)-6,0,2)13*pi + atan(35641981496012/67550630868559) - 12例1-14 求二重积分及三重积分 syms x y; int(int(x*y,x,1,2),y,0,1)3/4 syms x y z; int(int(int(x*exp(y)+z2,x,0,1),y,0,1),z,0,1)exp(1)/2 - 1/6例1-15 已知,设该曲线在
6、区间0,x上所围曲边梯形面积为s,试求当s分别为5,10时的x的值。syms x t;y=sym(t3-5*t2+6*t+5);s=int(y,t,0,x);x1=solve(s=5,x)x1 =x2=solve(s=10,x)x2 =例1-16 利用MATLAB命令求解无理数的近似值。(1) 用函数零点命令(fzero)求无理数的近似值; f=(x)x-exp(1); fzero(f,2) 2.7183(2) 用定积分计算命令(trapz,quad,quadl)求无理数的近似值。(提示:e =2.7182818284,=0.6931471806) x=1:0.001:2; y=1./x; t
7、rapz(x,y) 0.6931例1-17 求极限 syms x h; limit(sin(x + h) - sin(x)/h, h, 0)cos(x)例1-18:设,求syms x y n; f=sym(xn*y+sin(y); diff(f,x)diff(f,y)diff(diff(f,x),x)diff(diff(f,y),y)diff(diff(f,x),y)例1-19:求 syms x y z %声明符号变量,注意变量间必须用空格分开syms x y z t; int(x*y/(1+x2),x)int(x*y/(1+x2),y,0,t)int(int(x*y/(1+x2),y,0,x
8、(1/2),x,0,1)int(int(int(x+y+z,z,1-x-y),y,0,1-x),x,0,1)级数求和(symsum) %求级数 (ans=inf 即 syms k; f=(k)1/k; symsum(f,k,1,inf)Inf (ans=1) f=(k)1/(k*(k+1);1%求级数 (ans= 3/2*a) syms k a; f=(k)a/3k; symsum(f,k,0,inf)(3*a)/2泰勒展开(taylor) syms x fy=1/(1 taylor(f,x,order,8)- x7 + x6 - x4 + x3 - x + 1+x+x2)求fx对自变量x(默
9、认)在x=0点(默认)泰勒展开前6项(默认) f=(x)1/(1+x+x2); taylor(f,x)- x4 + x3 - x + 1求fx对自变量x(默认)在x=1点泰勒展开式前8项 taylor(f,x,1,(2*(x - 1)2)/9 - x/3 - (x - 1)3/9 + (x - 1)4/27 - (x - 1)6/81 + (x - 1)7/81 + 2/3方程求根(solve) fx=sym(a*x2+b*x+c) ; %建立符号函数方程fx=0的符号解 syms a b c x; y=a*x2+b*x+c=0; solve(y,x) -(b + (b2 - 4*a*c)(1
10、/2)/(2*a) -(b - (b2 - 4*a*c)(1/2)/(2*a)求方程fx=0关于变量b的符号解 solve(y,b)-(a*x2 + c)/x微分方程(组)求解(dsolve)求方程y=5的通解,默认自变量为t syms y(t); dsolve(diff(y)=5)C1 + 5*t=x的通解,指定自变量为x syms y(x); dsolve(diff(y,x)=x)x2/2 + C2=1+y满足y(0)=1,y(0)=0的特解 dsolve(D2y=1+Dy,y(0)=1,Dy(0)=0exp(t) - t求方程组的通解,默认自变量为tsyms y(t) x(t); z=d
11、solve(Dx=x+yDy=2*x); z.xC6*exp(2*t) - (C5*exp(-t)/2 z.yC5*exp(-t) + C6*exp(2*t)实验2 MATLAB绘制二维、三维图形例2-1 在子图形窗口中画出上正弦、余弦曲线。x=linspace(0,2*pi);y1=sin(x);y2=cos(x);subplot(2,1,1);plot(x,y1);subplot(2,1,2);plot(x,y2);例2-2 画出上正弦、余弦曲线并对线型加粗、点型加大,重新定置坐标系以及加注相关说明和注释。plot(x,y1,LineWidth,10);title(y=sinxxlabel
12、(ylabel(yplot(x,y2,oMarkerSize,3);axis(-1,8,-2,2);y=cosx例2-3 分别在两个图形窗口画出填充一正方形和极坐标方程的图形。a=0:2*pi;r=2*sin(2*a).*cos(2*a);polar(a,r);x,y = pol2cart(a,r);例2-4在-2.5,2.5上画出函数的直方图和阶梯图。x=linspace(-2.5,2.5,100);y=exp(-x.2);bar(x,y);stairs(x,y);例2-5 采用不同形式(直角坐标、参数、极坐标),画出单位圆ezplot(x2+y2-1,-1,1);axis equal;0.
13、001*pi:x=sin(a);y=cos(a);r=ones(1,2001);例2-6 画出螺旋线:x=sin(t),y=cos(t),z=t,上一段曲线。t=linspace(0,10*pi,10000);x=sin(t);y=cos(t);z=t;plot3(x,y,z);例2-7 画出矩形域-1,1 -1,1上旋转抛物面:x=-1:1;x,y=meshgrid(x);z=x.2+y.2;a=surf(x,y,z);set(a,edgecolornone例2-8 在圆形域上绘制旋转抛物面:x,y=meshgrid(-1:0.0001:1);axis(-1,1 -1,1 0,1);axis
14、 off;grid off;例2-9 画出在上的图形。x,y=meshgrid(-7.5:7.5);z=sin(x.2+y.2).(1/2)./(x.2+y.2).(1/2);axis(-7.5,7.5 -7.5,7.5 -0.5,1);例2-10 有一组实验数据如下表所示,试绘图表示。时 间1 2 3 4 5 6 7 8 9数据112.51 13.54 15.60 15.92 20.64 24.53 30.24 50.00 36.34数据29.87 20.54 32.21 40.50 48.31 64.51 72.32 85.98 89.77数据310.11 8.14 14.17 10.14
15、 40.50 39.45 60.11 70.13 40.90x=1:9;x1=1:0.1:y1=12.51,13.54,15.60,15.92,20.64,24.53,30.24,50.00,36.34;y2=9.87,20.54,32.21,40.50,48.31,64.51,72.32,85.98,89.77;y3=10.11, 8.14,14.17,10.14,40.50,39.45,60.11,70.13,40.90;yy1=spline(x,y1,x1);yy2=spline(x,y2,x1);yy3=spline(x,y3,x1);,x,y2,*,x,y3,+,x1,yy1,x1,
16、yy2,x1,yy3);legend(数据1数据2数据3set(legend,Position,0.399404763554533 0.763492066898043 0.128571426921657 0.126190472784496);实验 3 MATLAB 编程介绍与循环结构 例3-1:求 n(n=100)个奇数的和:s=1+3+5+(2n-1). n=100;s=0;for i=1:2:(2*n-1) s=s+i;disp(s); 10000例3-2:求正整数 n 的阶乘:p=12 3 n = n!,并求出 n=20 时的结果。n=20;p=1;n p=p*i;disp(p); 2.
17、4329e+18例3-3:根据麦克劳林公式可以得到e1+1+1/2!+1/3!+1/n!,试求e的近似值。n=1000000;s=1; a=1/factorial(i); s=s+a;format long; 2.718281828459046 例3-4:对于数列求其前n项和不超过1000时的n的值及和. n=1000; a=(i)(1/2); 2.109745588748073e+04例3-5:根据e1+1+1/2! 求e的近似值,要求精确到10-8。a=ones(1,1000000);1000000; a(i)=1/factorial(i); s=s+a(i); if (i=2)&(abs
18、(a(i-1)-a(i)a(2) m=a(1); b=2;else m=a(2);for i=2:(n-1) if m=90 disp(,num2str(i),个学生的成绩是A); elseif a(i)=80个学生的成绩是B=70个学生的成绩是C else个学生的成绩是D第1个学生的成绩是C第2个学生的成绩是D第3个学生的成绩是D第4个学生的成绩是D第5个学生的成绩是D第6个学生的成绩是B第7个学生的成绩是C第8个学生的成绩是D第9个学生的成绩是A第10个学生的成绩是D例4-3:Fibonacci 数组的元素满足 Fibonacci 规则:an:a1 =a2 =1,ak+2 =ak +ak+
19、1,k =1,2,3, . 求出该数组中第一个大于 10000 的元素a(1)=1;a(2)=1;10000 a(i+2)=a(i)+a(i+1); if a(i+2)10000 end Fibonacci 数组中的第,num2str(i+2),个元素第一个大于 10000,元素的值为:,num2str(a(i+2)Fibonacci 数组中的第21个元素第一个大于 10000,元素的值为:10946 例4-4:动态显示数列极限的逼近过程。 a=ones(1,n); a(i)=(1+1/i)i; plot(i,a(i), hold on;x=0;20 axis(x,x+50,2,3); pau
20、se(0.1); x=x+50;问题1:对于数列 为常数,可以证明该数列收敛,且显然,这个结论提供了一个求平方根的近似方法,试编制一个函数程序,对任意给定的正实数A,求出的近似值(精确到10-5 )。n=10000000;A=input(请输入需要开方的数: a(i+1)=(a(i)+A/a(i)/2; if abs(a(i+1)-a(i)10(-5)disp(a(i+1); 100031.622776601684315问题 2:对于任意一个正整数,都可以判断其是质数还是合数,这一点在一些有关数论问题中是经常用到的。但当一个正的奇数比较大时,手工来判断是否为质数往往不很容易。现在要求编制一个函
21、数程序,对任意一个正整数,判断出它是质数还是合数,若是质数,则返回值 1;若是合数,返回值 0,同时给出两个因数;若输入非正数,则返回值-1,并提示错误。function s,factor1,factor2=primefactor1=0;factor2=0;a=input(请输入需要计算大于5的正整数(如果您输入有含有小数,将向下取整):a=floor(a);b=num2str(a);N=length(b);sd=str2num(b(N);if (a=0)|(a=inf)|(isnan(a) s=-1; disp(这不是一个正整数elseif (sd=0)|(sd=2)|(sd=4)|(sd=6)|(sd=8) s=0; factor1=2; factor2=a/2;因子分别为:,num2str(factor
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1