%正弦函数在MATLAB中如何实现
%1.sin(45°)注意:参数值需要用“弧度”去定义
>>x=sin(45*pi/180);
%2.MATLAB中注意:开方-sqrt(x),指数函数-exp(x)
>>y=sqrt(2*exp(x+0.5)+1);
%3.MATLAB中几元几次方程的写法: 2x+3y-z=2
% 8x+2y+3z=4
% 45x+3y+9z=23
<<A=[2,3,-1;8,2,3;45,3,9];%建立系数矩阵
>>b=[2;4;23];%建立列向量b
>>B=[2,4,23]\'%等价与b
>>x=inv(A)*b%对矩阵求逆。如果A是非奇异方阵,则B/A = B*inv(A),A\B = inv(A)*B。/表示右除,\表示左除。
%注意:使用inv时,必须对象为方阵。 (A左除B=A的逆乘以B):那边除那边为分母
%(1).可以借助符号计算解方程:
>>syms x y z %matlab中syms意思是定义多个变量
>>[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23);%MATLAB中solve()主要是用来求解代数方程(多项式方程)的符号解析解。
%4.MATLAB中多项式的表示:
%(1).p(x)=x^4+3x^3+2x+1;
>>a=[1,3,0,0,2,1];%幂次从高到底,零系数和系数为0的幂次方不能省略
%(2).求方程2x^5-3x^3+71x^2-9x+13=0的全部根:
>>p=[2,0,-3,71,-9,13];%建立多项式系数向量
>>x=roots(p);%求根函数
>>x =
-3.4914
1.6863 + 2.6947i
1.6863 - 2.6947i
0.0594 + 0.4251i
0.0594 - 0.4251i %一个实根,三个虚根
%%%5.算术运算:
x=[1,2,3;4,5,6;7,8,9]; c=x^2;
x = 1 2 3 c =30 36 42
4 5 6 66 81 96
7 8 9 102 126 150
d=x.^2;
d = 1 4 9
16 25 36
49 64 81
乘:* 矩阵乘法
点乘: .* 相应元素相乘
幂: ^ 矩阵幂运算
点幂: ^ 相应元素进行幂运算
%6.近似计算和精确计算:
>>F=quad(\'x.*log(1+x)\',0,1,0.001,1);
%1. F=quad(\'fname\',a,b,tol,trace) Simpson数值积分法.
%2. F=quad8(\'fname\',a,b,tol,trace) Newton-Cotes数值积分法.
其中(1).%fname是被积函数表达式或函数名
%(2).a,b分别是上下限,
%(3).tol可以控制积分精度,省略则取0.001;
%(4).trace=1则用图形表示积分过程,trace=0,没有图形
>> syms x
>> F=int(x*log(1+x),x,0,1);
%F=int(函数式子,表示哪个未知数的区间,上限(可以是函数),下限);
>>Y=subs(F,x,t);%将F表达式中的x(自变量)由t替换成1,并赋值给Y
subs()函数 表示将符号表达式中的某些符号变量替换为指定的新的变量
>>disp(Y);%类似于printf输出
>>syms x y z %定义符号变量
>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %可以套娃!
%7.线性规划问题的编程:max 5x1+4x2+6x3
s.t.:x1-x2+x3<=20
3x1+2x2+4x3<=42
3x1+2x2<=30
0<=x1,0<=x2,0<=x3
>>F=[-5,-4,-6];%目标函数向量
>>A=[1,-2,2;3,2,4;3,2,0]; %Ax=b:不等式约束
>>b=[20,42,30];
>>Ib=zeros(3,1);%约束变量的下限向量
>>x=linprog(F,A,b,[],[],Ib,[]);%规划向量求解
>>fval=F*x;%目标函数最小值
%(1).linprog函数主要用来求线型规划中的最小值问题
%(2).针对约束条件为Ax=b或Ax≤b的问题
%(3).Aeq*x=beq:存在等式约束
%(4).linprog函数常用形式为:x=linprog(f,A,b,Aep,beq,lb,ub);
%8.MATLAB中保存和加载命令:
save 文件名 %将所有变量存入指定文件:
load 文件名 %载入数据文件中的所有变量:
%9.变量和数据类型,显示形式:
short(默认):2位整数,4位小数
long:16位十进制数:23.66666666666666
short g:5位十进制数
bank :两位小数
rat :分数
%9.运算符:
(1).续行符:” …“ %续行符前留一个空格
(2).操作符:”:“ %表示所有,数组和矩阵中也表示公差(公比)
(3).“rand(m,n)”%表示生成m到n个[0,1]之间的随机数
(4).关系运算符: “==”:等于 ”~=“:不等于>>
>> a=[1,2,3;4,5,6];
>> b=[4,5,6;7,8,6];
>> a==b
ans =0 0 0
0 0 1
(5).
(6).
(7).
(8).
(9).
%10.行向量、列向量的创建:
(1).利用linspace函数:
%x=linspace(x1,x2,n);
X=linspace(5,100,20)
X = 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
%这和X=[5:5:100]的效果是一样的。
(2).利用reshape函数:
%语法是 A = reshape(A,m,n); 或者 A = reshape(A,[m,n]);
%矩阵中元素个数不变,函数可以重新调整 矩阵 的行数、列数、 维数
注意:reshape函数所创建的新矩阵元素(m*n)必须旧矩阵元素的个数。
%%%11.向量、矩阵、数组
x=linspace(x1,x2,n);
x(n);%表示数组中第n个元素
x(n1,n3);%表示数组中第n1到n2的元素
%find()函数是查找数组中为0的下标,也可以进行约束查找符合元素的下标。
矩阵的特征值于特征向量:eig()函数
A=[1,2;3,4];
l=eig(A);%求A的特征值,返回一个列向量(这里就是eig这个函数返回的一个特征值)
[l,d]=eig(A);%矩阵A的全部变量,构成对角矩阵d
%矩阵A特征向量构成向量l