matlab数学实验--第一章

一、            数据和变量:

省略号(三个英文句点):表示换行

历史指令调用:用方向键上下

数据显示格式:

                   format short

                   format long

                   format rational

 

复数: I,j

realmin:最小正实数

realmax:最大正实数

Inf:无穷大   eg:2/0

NaN:不定值  eg:0/0

 

二、            数组的输入与分析:

中括号[]表示矩阵,同行元素用逗号或空格分隔;不同用分号或回车分隔。

         函数linspace(x1,x2,n)生成x1与x2间的n维等距行向量

         编址:不能为0,按列编址;

         冒号运算: eg;生成1到10,公差为2的等差数组:a=[1:2:10]

         Length: 计算向量的尺寸

Size计算矩阵的尺寸

 

查看矩阵的某个元素:eg:A(2,3)表示2行3列的元素

矩阵元素的抽取:eg:A=[1 2 3; 4 5 6];

A(2,:)表示抽取矩阵第二行的元素

A(:,3)表示抽取矩阵第三列的元素

子矩阵的抽取:A([1,2],[2,3]) 表示抽取第一行下标为1,2的元素2,3和第二行下标为2,3的元素5,6

A(:)把矩阵A变成向量形式

 

更改向量的元素:eg:  a(2)=6 把向量的第二元素改成6

同理,改变矩阵的元素也一样,A(2,3)=7 二行三列的元素改为7

拼接:eg:  [A,B]把A矩阵和B矩阵按行方式进行拼接,如果逗号改为分号就是按列进行拼接

 

sum: 矩阵:列相加; 向量:全部相加

prod(乘积): 如果自变量是向量,求所有向量的乘积; 如果自变量是矩阵,求每一列的乘积;

min,max:如果自变量是向量,求所有向量的最小最大值; 如果自变量是矩阵,求每一列的最小最大值;

 

特殊矩阵

Zeros(m,n):零矩阵 ;   ones(m,n):一矩阵 ;  eye(m,n):单位矩阵

 

导入外部excel数据文件:

剪切板 + Array  Editor

菜单import  data

 

数组乘方:A.^K;  K.^A:表示矩阵中的每一个元素以K为底,对应元素的次方形成的新矩阵

数组运算:A.*B,A./B;  A-3(每个元素-3)

 

 

数学函数:

矩阵的数字函数是按元素运算

fix: 向0取整          

ceil :向正无穷取整              

rem:除法余数                             

real:复数实部                   

angle:复数幅角         

log:自然对数 (ln)

   

floor:向负无穷取整

mod:模除求余

abs:绝对值

image:复数虚部

conj:复数共轭

log10:以10为底对数

eg:以2为底4的对数为2 ---log2(4)      

 

逻辑运算:

any:至少有一个满足条件  all:必须全部满足条件

find:找到满足条件元素的下标

 

测试题:

a表示每一列的最小值

b表示每列最小值所在的行号

 

分号的作用:

不让表达式结果显示出来

两个语句分隔符

矩阵换行

 

 

三、字符串、元胞和结构

数据类型:

数值(Double):

逻辑(Logical):

字符(Char):  a = '清心明目',b=a([4:-1:1]) 结果为: 目明清心

                              字符串的拼接:t=’好’, c=[a,t] 结果为 清心明目好

元胞(Cell):

结构(Structure):

 

字符串转化  num2str,str2num

 

 

第一章作业题

执行下列指令,观察运算结果,理解其意义

(1)[a,b]=min([10 20;30 4])

a的值是矩阵每一列的最小值,即10  4

b的值是矩阵最小值所在的行号

 

(2)[10 20;30 40]>=[40 30;20 10]

返回对应元素比较结果的值0,1

 

(3)find([10 20;30 40]>=[40 30;20 10])

返回的结果是将矩阵先转化为列向量再比较得到的位置

题中的矩阵变换为列向量为(10 30 20 40T ,(40 20 30 10)T;

对应元素进行比较,结果为

(4)[x,y]= find([10 20;30 40]>=[40 30;20 10])

x是返回满足条件的元素所在行

y是返回满足条件的元素所在列

结果是

 

(5)linspace(3,4,5)

以3开始,以4结尾,分成5

 

(6)fun='abs(x)',x=-2,eval(fun),double(fun)

结果为:

eval函数将括号内的字符串视为语句并运行

double函数将字符串中每个字符的ASCII码返回

 

(7)本金k以每年n次,每次p%的增值率增加,当增加到rk时所花费的时间为

T=lnr/nln(1+0.01p), 用MATLAB表达式写出该公式并用下列数据计算:r=2,p=0.5,n=12.

 

(8)已知函数f(x)=x4 -2x 在(-2,2)内有两个根。取步长h=0.05,通过计算函数值求得函数的最小值点和两个根的近似解。(求近似根等价于求函数绝对值的最小值点)

第一种解法:

最小值:

x=-2:0.05:2;

f=x.^4-2.^x;

[fmin,min_index]=min(f)  %fmin:最小值;min_index最小值点编址

x(min_index)  %最小值点

 

近似解:

[f1,x1_index]=min(abs(f))  %求近似根

x(x1_index)

x(x1_index)=[];  f=x.^4-2.^x;  %删去绝对值最小的点以求函数绝对值次小的点

[f2,x2_index]=min(abs(f))   %求另一近似根

x(x2_index)

 

第二种解法:

clear all;

fun=inline(‘x.^4-2.^x’,’x’);

[x,f]=fminbnd(fun,-2,2);   %求最小值

%求零点

fzero(fun,[-2,0]);

fzero(fun,[0,2]);

 

 

 

PS:

iline函数用于定义函数

         变量名=inline(‘matlab有效表达式’,’变量1’,’变量2’……)

原文地址:https://www.cnblogs.com/geeker-xjl/p/8892293.html