Matlab系列作业
(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以后就可以确定是哪些元素要赋值为1
A(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;
Matlab系列作业的更多相关文章
- ROS与Matlab系列:一个简单的运动控制
ROS与Matlab系列:一个简单的运动控制 转自:http://blog.exbot.net/archives/2594 Matlab拥有强大的数据处理.可视化绘图能力以及众多成熟的算法函数,非常适 ...
- 面向对象JML系列作业总结
面向对象JML系列作业总结 一.综述 本单元作业,由简到难地迭代式实现了三种JML需求,主要学习了面向规格的编程方法. 第一次:实现Path类和PathContainer类 第二次:继承PathCon ...
- OO_JAVA_JML系列作业_单元总结
OO_JAVA_JML系列作业_单元总结 (1)梳理JML语言的理论基础.应用工具链情况 简单梳理 以下三者是jml规格里的核心,对一个方法功能和属性的限制: requires子句:规定方法的前置条件 ...
- 【matlab系列汇总】小白博主的matlab学习实战快速进阶之路(持续更新)
我把之前在学习和工作中使用matlab的技巧和使用教程等相关整理到这里,方便查阅学习,如果能帮助到您,请帮忙点个赞: MATLAB可以进行矩阵运算.绘制函数和数据.实现算法.创建用户界面.连接其他编程 ...
- C++系列作业
1.编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N.若输入为Y,显示“现在正在下雨.”:若输入为N,显示“现在没有下雨”:否则继续提问“现在正在下雨吗?” #incl ...
- OO第二单元作业小结
前言 转眼已是第九周,第二单元的电梯系列作业已经结束,终于体验了一番多线程电梯之旅. 第一次作业是单电梯的傻瓜调度,虽然是第一次写多线程,但在课程PPT的指引下,写起来还是非常容易:第二次作业是单电梯 ...
- 我永远爱着OOP——第二单元作业总结
第二单元的电梯真是愉♂快呢,多线程编程作为java编程OOP中的重要组成部分,通过这一个单元的学习,我也是有了很多全新的认识 那么下面就先例行一下公事 三次作业分析 第五次作业 设计分析 实现的电梯是 ...
- 第二次oo博客作业--多线程电梯
这次的系列作业是写一个电梯调度,主要目的是让我们熟悉多线程. 第一次作业是一个傻瓜电梯的调度问题,要求也很简单,即每次接一个人就行了.我只用了两个线程,一个是输入线程,一个是电梯线程,输入线程负责从标 ...
- 第5-7次OO作业总结分析
(1)从多线程的协同和同步控制方面,分析和总结自己三次作业来的设计策略及其变化. 第五次作业 第五次作业是对多线程的初步探索,所以对于多线程的基本书写机制的认识比较多.本次作业难点在于了解多线程的运作 ...
随机推荐
- 13-MySQL-Ubuntu-数据表的查询-条件查询(二)
条件查询 1,比较查询(>,<,>=,<=,=)注:SQL查询语句的等于号(=) (1)查询学生表中年龄大于18岁的学生姓名和性别信息 select name,gender f ...
- selenium基础-跳过验证码
selenium基础-跳过验证码 一.方法 设置万能验证码或者屏蔽验证码(最常用的方法) 使用验证码识别工具识别验证码 通过selenium操作cookies 直接使用配置文件的webdriver 二 ...
- STM32---初学者用库函数好还是直接对寄存器操作比较好
引用:http://blog.csdn.net/u010349006/article/details/416 首先,两个都是C语言.从51过渡过来的话,就先说寄存器操作.每个MCU都有自己的寄存器,5 ...
- 【模板篇】k短路 SDOI2010 魔法猪学院
题目传送门 吐槽时间 题目分析 代码 题目の传送门 都成了一道模板题了OvO ============================================================= ...
- leetcode-8-字符串转换整数(atoi)
题目描述: 方法一:正则 class Solution: def myAtoi(self, str: str) -> int: return max(min(int(*re.findall('^ ...
- mysql 数据库 内容的增删改查
/*所有字段插入值*//*注意插入值数目要与字段值一致*/INSERT INTO student VALUES(1,'熊大','123','2019-10-18',1200);INSERT INTO ...
- (2)python tkinter-按钮.标签.文本框、输入框
按钮 无功能按钮 Button的text属性显示按钮上的文本 tkinter.Button(form, text='hello button').pack() 无论怎么变幻窗体大小,永远都在窗体的最上 ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...
- Docker系列(三):Docker自定义容器镜像
将容器编程镜像: docker commit [repo:tag] 网上有这句话:当我们在制作自己的镜像的时候,会在container中安装一些工具.修改配置,如果不做commit保存 起来,那么co ...
- HDU-1852-Beijing 2008-一个神奇的公式求逆元
As we all know, the next Olympic Games will be held in Beijing in 2008. So the year 2008 seems a lit ...