Matlab系列作业
发布日期:2022-01-31 14:08:49 浏览次数:9 分类:技术文章

本文共 1575 字,大约阅读时间需要 5 分钟。

(2019年2月19日注:Matlab这门课是在我大四上学期经历的,那时候开这篇文章是为了记录学习Matlab的时候遇到的坑,所以将所有的作业题合并到一篇文章中)

  1.创建一个10*10的矩阵,矩阵所有对角元素为1,其余元素为10~20之间(包括10和20)的均匀分布随机数,并得出该矩阵中大于13且小于18的元素个数,同时求得这些元素的平均数。

A=unifrnd(10,20,10,10); %   产生一个10*10的由10到20均匀分布的矩阵%   eye()产生了一个单位对角矩阵%   logical将1的数值转成矩阵的位置%   带上A以后就可以确定是哪些元素要赋值为1A(logical(eye(size(A))))=1;%   找符合条件的元素,并返回元素的索引B=find(A>13&A<18);%   计算长度C=length(B);%   求均值D=mean(C);

  2. 用mesh函数做出函数$f(x,y)=-[xsin(9πy)+ycos(25πx)+20]$在$x^2+y^2≤10$的图像。

%   定义三个符号变量syms x y t;%   给定t的范围,数学上类似于转成极坐标来计算t=linspace(-1,1);x=sqrt(10)*cos(t);y=sqrt(10)*sin(t);%   在范围定好以后给定变量[xx,yy]=meshgrid(x,y);%   函数表达式f_xy=-1*(xx*sin(9*pi*yy)+yy*cos(25*pi*xx)+20);%   初级的不能再初级的画图...mesh(xx,yy,f_xy);

  3. 生成30阶的希尔伯特矩阵A,并剔除矩阵的第3到10行,剔除矩阵的4到13列,得到矩阵B,再逆序选取矩阵B的1到10行,顺序选取矩阵的2到11列,得到新矩阵C。(hilb(n))

%	生成一个30阶的希尔伯特矩阵A=hilb(30);%	删除3到10行A(3:10,:)=[];%	再删除4到13列A(:,4:13)=[];%	得到的新矩阵后,逆序索引,从第10到第1行,步长为-1,从2到11列,默认步长为1.C=A(10:-1:1,2:11);

  4. 解常微分方程组$$(1)dx/dt+2x-dy/dt=10cos(t),x(0)=2;$$ $$(2)dx/dt+dy/dt+2y=4e^(-2t),y(0)=2$$并作出$y-x$(横坐标为x,纵坐标为y)在$t∈(0,10)$之间的图像(时间间距尽量小)

%	定义三个符号变量syms x y t;%	解微分方程组[x,y]=dsolve('Dx+2*x-Dy=10*cos(t)','Dx+Dy+2*y=4*exp(-2*t)','x(0)=2','y(0)=2');%	将得到的通解里面将符号变成可用于计算的数字X=subs(x,'t',0:0.1:10);Y=subs(y,'t',0:0.1:10);%	将符号变量变成数值变量X=double(X);Y=double(Y);%	初级的不能在初级的画图...plot(X,Y);

  5. 解矩阵方程组$H*X=B$,H为100阶希尔伯特矩阵,$X=(x1,x2,x3,……,x100)^T,B=(1,2,3,……,100)^T$

%	定义一个100阶的希尔伯特矩阵H=hilb(100);%	定义一个100*1的列向量B=ones(100,1);%	由于直接使用int(H)会引入奇异矩阵的误差,因此matlab里面有一个专门的命令invhilb()%	专门解决希尔伯特矩阵求逆的问题。X=invhilb(100)*B;

  

 

转载于:https://www.cnblogs.com/jcchan/p/10401131.html

转载地址:https://blog.csdn.net/dianshou3172/article/details/102373994 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:二进制反码求和运算
下一篇:CentOS源码安装Wireshark

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月29日 21时01分53秒