一、实验目的(本次实验所涉及并要求掌握的知识点)
二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)
创建数组
指定元素的数组A=[3 10 1 6 5]
两个等差数组a和b,起始值为2,间距分别为2和3,终值为 10;运用linspace函数创建[2,8]之间,包含8个元素的等差数组c
- >> A=[3 10 1 6 5]
-
- A =
-
- 3 10 1 6 5
-
- >> a=2:2:10
-
- a =
-
- 2 4 6 8 10
-
- >> b=2:3:10
-
- b =
-
- 2 5 8
- >> c=linspace(2,8,8)
-
- c =
-
- 列 1 至 7
-
- 2.0000 2.8571 3.7143 4.5714 5.4286 6.2857 7.1429
-
- 列 8
-
- 8.0000
创建矩阵
矩阵B的第一列和第四列是数组A的转置,第2列为A+1的转置,第3列为A-1的转置。
将矩阵B的第2~5行中的第1、3列元素赋值给矩阵C
- >> B=[A' (A+1)' (A-1)' A']
-
- B =
-
- 3 4 2 3
- 10 11 9 10
- 1 2 0 1
- 6 7 5 6
- 5 6 4 5
-
- >> C=B([2,3,4,5],[1,3])
-
- C =
-
- 10 9
- 1 0
- 6 5
- 5 4
数组和矩阵的运算
计算A+a、A.*a、A^a
删除矩阵B的第2行
求矩阵B的大小和维数
- >> A+a
-
- ans =
-
- 5 14 7 14 15
-
- >> A.*a
-
- ans =
-
- 6 40 6 48 50
-
- >> A.^a
-
- ans =
-
- 9 10000 1 1679616 9765625
-
- >> B([2],:)=[]
-
- B =
-
- 3 4 2 3
- 1 2 0 1
- 6 7 5 6
- 5 6 4 5
- >> size(B)
-
- ans =
-
- 4 4
-
- >> length(size(B))
-
- ans =
-
- 2
MATLAB程序设计
编程求
从键盘输入一个4X5的矩阵,编程求出其最大元素和最小元素值及所在位置。
一球从100m高度自由下落,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少m?
- //使用for循环语句
-
- >> s=0;
- for i=1:20
- s=s+sum(factorial(i));
- end
- disp(s)
- 2.5613e+18
-
- //或者直接使用symsum函数
-
- >> syms n
- >> symsum(sum(factorial(n)),n,1,20)
-
- ans =
-
- 2561327494111820313
Symsum函数用于在Matlab 中求和。
语法为:symsum(f,n,a,b),其中:
f是需要求和的表达式;
n是求和符号,如k或i;
a是求和的下限;
b是求和的上限。
- >> r=randi(100,4,5)
-
- r =
-
- 44 19 71 66 96
- 39 49 76 17 35
- 77 45 28 12 59
- 80 65 68 50 23
-
- >> x=max(max(r))
-
- x =
-
- 96
-
- >> y=min(min(r))
-
- y =
-
- 12
-
- >> [i,j]=find(x==r)
-
- i =
-
- 1
-
- j =
-
- 5
-
- >> [i,j]=find(y==r)
-
- i =
-
- 3
-
- j =
-
- 4
Randi函数用于生成随机的矩阵,第一个数字为范围,max(x),min(y)用于求矩阵中的最大最小值,由于max/min用于矩阵时返回的是提取每行最大/最小元素的数组,所以连续两次套用max/min函数以便直接得到矩阵中的最大/最小元素值。
- >> h=100
-
- h =
-
- 100
-
- >> x=h
-
- x =
-
- 100
-
- >> for i=1:10
- h=h/2;
- x=x+2*h;
- end
- >> disp(x);
- 299.8047
C语言入门题,简单的编程
MATLAB绘图命令
用plot,fplot绘制函数y=cos(tan(πx))的图形。
用ezplot绘制函数exy-sin(x+y)=0在[-3,3]上的图形。
用ezplot绘制摆线x=a(t-sint) y=a(1-cost),t∈[0,2π]的图形。
用surf,mesh绘制曲面z=2x2+y2。
用polar绘制阿基米德螺线r=aθ和三叶玫瑰线r=acos3θ
- %plot,fplot函数
-
- >> x=linspace(-0.5,0.5,30)
- >> y=cos(tan(pi*x));
- >> plot(x,y)
-
-
- >> fplot(@(x)[cos(tan(pi.*x))],[-0.4,0.4])
-
- %ezplot函数
-
- >> ezplot('exp(x*y)-sin(x+y)=0',[-18,18])
-
- %ezplot绘制摆线
-
- >> a=1;
- >> x=a*(t-sin(t));
- >> y=a*(1-cos(t));
- >> ezplot(x,y,[0,2*pi])
-
- %用surf ,mesh绘制曲面z
-
- >> x = -5:0.5:5;
- y = -5:0.5:5;
- [X, Y] = meshgrid(x, y);
- Z = 2*X.^2 + Y.^2;
- subplot(1, 2, 1);
- surf(X, Y, Z);
- >> subplot(1, 2, 2);
- meshc(X, Y, Z);
-
- %使用ploar绘制阿基米德螺线
- theta = 0:0.1:6*pi;
- a = 6;
- r = a*theta;
- subplot(1, 2, 1);
- polar(theta, r);
-
- %使用ploar绘制三页玫瑰线
-
- theta = 0:0.01:2*pi;
- rho = cos(3*theta);
- polarplot(theta,rho)
效果图:
左为surf绘制,右为mesh绘制
生成图像可以使用title(titletext)函数来添加标题,不用在word里面给图加题注,这里笔者偷懒了没有用。
结语
刚学数学建模这门课,这篇文章是老师布置的作业,感觉对于代码能力的需求比较低,有些C语言基础就能应对,主要还是对于数学能力的要求更多一些,但是勤查官方文档的好习惯不能丢,有想法多查查文档总能有收获。
评论记录:
回复评论: