数学建模-MatLab绘图作业

一、实验目的(本次实验所涉及并要求掌握的知识点)

二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)

创建数组

指定元素的数组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程序设计

编程求\sum _{n=1}^{20}n!

从键盘输入一个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语言基础就能应对,主要还是对于数学能力的要求更多一些,但是勤查官方文档的好习惯不能丢,有想法多查查文档总能有收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值