matlab基础功能实践
一、matlab在高等数学中的应用(《数学建模算法与应用》P453)
1、求极限
syms x
b=limit((sqrt(1+x^2)-1)/(1-cos(x)))
syms x a
b=limit((1+a/x)^2,x,inf)
2、求导数
syms x
dy=diff(log((x+2)/(1-x)),3)
dy=simplify(dy) %对符号函数进行化简
pretty(dy) %分数线居中显示,这部一般不需要
差分:
a=[0,0.5,2,4];
da=diff(a)
3、求极值
syms x
y=x^3+6*x^2+8*x-1;
dy=diff(y);
dy_zero=solve(dy) %表达式类型
dy_zero_num=double(dy_zero) %变成数值类型
ezplot(y)
syms x
y=x^3+6*x^2+8*x-1;
dy=diff(y);
dy_zero=solve(dy) %表达式类型
dy_zero_num=double(dy_zero) %变成数值类型
ezplot(y) %符号曲线画图
4、求积分
不定积分:
syms x
I=int(1/(1+sqrt(1-x^2)))
pretty(I)
定积分 (符号解、数值解):
符号解:
syms x
I=int(cos(x)*cos(2*x),-pi/2,pi/2)
数值解:
I=quadl(@(t)(t-3*t.^2+2*t.^3).^(-1/3),eps,0.5)
(积分上下限不能为inf,可以不变换而直接设一个很大的数
syms t %不加也可以
I=quadl('(t-3*t.^2+2*t.^3).^(-1/3)',eps,0.5) %后面两项分别为积分上下限,eps认为是0
二重数值积分:
I=dblquad(@(x,y)sqrt(1-x.^2-y.^2).*(x.^2+y.^2<=x),0,1,-0.5,0.5)
(matlab中的log就是ln
三重数值积分:
fun3=@(x,y,z)z.^2*log(x.^2+y.^2+z.^2+1)./(x.^2+y.^2+z.^2+1).*(z>=0&...
z<=sqrt(1-x.^2-y.^2)); %...是续航符
I=triplequad(fun3,-1,1,-1,1,0,1)
注意把范围不等式点乘一下,最后的上下限只能为数字
5、级数求和
级数的上下限可以带inf
syms n
f1=(2*n-1)/2^n;
s1=symsum(f1,n,1,inf)
syms n
f2=1/n^2
s2=symsum(f2,n,1,inf)
二、matlab绘图命令(《数学建模算法与应用P449》)
1、二维绘图命令
title('my title')
xlabel('x-axis label')
ylabel('y-scid label')
text(x,y,'text for annotation')
gtext('text for annotation')
grid %网格的打开与关闭
subplot(r,c,p)
plot(t,[x1,x2,x3])
plot(t1,x1,t2,x2,t3,x3)
plot(x,y,'r-*')
2、显函数、符号函数或隐函数的绘图
function y=Afun1(x);
if x<1
y=x+1;
else
y=1+1/x;
end fplot('Afun1',[-3,3])
匿名函数:
Afun2=@(x)(x+1)*(x<1)+(1+1/x)*(x>=1);
fplot(Afun2,[-3,3]);
符号函数:
ezplot('tan(x)')
ezplot('x^2+y^2/4=1')
ezplot可以用来绘制隐函数
3、三维图形
三维曲线图:plot3
三维网格图:mesh
三维表面图:surf
1)三维曲线:
t=0:pi/50:10*pi
plot3(sin(t),cos(t),t);
xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t')
2)网格图
clc,clear
x=-3:0.1:3;y=-5:0.1:5;
[x,y]=meshgrid(x,y); %生成网格数据,自变量
z=(sin(x.*y)+eps)./(x.*y+eps); %为避免0/0,分子分母都加eps
mesh(x,y,z);
3)表面图
[x,y]=meshgrid([-3:0.2:3]);
z=(sin(x.*y)+eps)./(x.*y+eps);
surf(x,y,z);
4)旋转曲面(绕x轴旋转一周所得的图像
x=0:10:600;
[X,Y,Z]=cylinder(30*exp(-x/400).*sin((x+25*pi)/100)+130);
surf(X,Y,Z)
r为母线,n为沿周长的格数
alpha=[0:0.1:2*pi]';
beta=0:0.1:2*pi;
x=4*cos(alpha)*ones(size(beta));
y=(5+4*sin(alpha))*cos(beta);
z=(5+4*sin(alpha))*sin(beta);
surf(x,y,z)
emmm,上面这段代码不太理解。。。
下面这段是参数方程的常用画图方法,用函数句柄以及ezsurf完成
x=@(alpha,beta)4*cos(alpha);
y=@(alpha,beta)(5+4*sin(alpha)).*cos(beta);
z=@(alpha,beta)(5+4*sin(alpha)).*sin(beta);
ezsurf(x,y,z)
5、其他二次曲面
(1)旋转单叶双曲面
x=@(s,t)3*sec(s).*cos(t);
y=@(s,t)3*sec(s).*sin(t);
z=@(s,t)2*tan(s);
ezmesh(x,y,z);
(2)旋转双叶双曲面
x=@(s,t)3*sec(s);
y=@(s,t)3*tan(s).*cos(t);
z=@(s,t)2*tan(s).*cos(t);
ezmesh(x,y,z);
(3)抛物柱面
ezsurf(@(y,z)y.^2,50);
(4)椭圆锥面
x=@(s,t)3*tan(s).*cos(t);
y=@(s,t)2*tan(s).*sin(t);
z=@(s,t)tan(s);
ezsurf(x,y,z);
(5)椭球面
ellipsoid(0,0,0,3,2,sqrt(6));
使用matlab内置的绘制椭球的函数 ellipsoid(xc,yc,zc,xr,yr,zr,n),其中:
xc,yc,zc分别表示椭球中心的x,y,z坐标。
xr,yr,zr分别表示椭球x,y,z半轴的长度。
n表示绘图时,沿着经度和纬度方向划分的曲面片数量,n越大则数据越密集,曲面越光滑。
(6)马鞍面
ezsurf(@(x,y)x.*y);
(7)椭圆柱面
x=@(s,t)3*cos(s);
y=@(s,t)2*sin(s);
z=@(s,t)t;
ezmesh(x,y,z)
4、3-D可视化图形
[x,y,z,v]=flow;
isosurface(x,y,z,v);
x=1:20;y=1:10;z=-10:10;
[x,y,z]=meshgrid(x,y,z);
v=x.^2.*y.*(z+1);
isosurface(x,y,z,v);
isosurface与ezplot对应,可以绘制三维隐函数图像。ezmesh与ezsurf必须显函数或转化为参数方程。isosurface默认值不确定。
isosurface与ezmesh、ezsurf的作用相同,但是表达式不同。
matlab基础功能实践的更多相关文章
- Matlab - 基础知识
Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...
- MSF基础攻击实践报告
MSF基础攻击实践 MSF的六个模块:exploit,encoder,payload,aux,post,nops exploit——渗透攻击模块 测试者利用它来攻击一个系统,程序,或服务,以获得开发者 ...
- 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...
- Matlab--从入门到精通(chapter2 matlab 基础知识)
Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...
- Matlab高级教程_第一篇:Matlab基础知识提炼_02
第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...
- Matlab高级教程_第一篇:Matlab基础知识提炼_01
第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...
- 信号与系统实验序章0——MATLAB基础命令入门
本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换. 同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习 ...
- 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)
博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞
- machine learning基础与实践系列
由于研究工作的需要,最近在看机器学习的一些基本的算法.选用的书是周志华的西瓜书--(<机器学习>周志华著)和<机器学习实战>,视频的话在看Coursera上Andrew Ng的 ...
随机推荐
- 解决:TypeError: 'list' object is not callable
如果list变量和list函数重名,会有什么后果呢?我们可以参考如下代码: list = ['泡芙', '汤圆', '鱼儿', '骆驼'] tup_1 = (1, 2, 3, 4, 5) tupToL ...
- 开始学Python
怎么说,整体还是比较愚昧的.不知道该干什么,大学里学过C++,C语言,忘的差不多了.毕业了做的是SAP,自学过一段JAVA.总是东一榔头西一棒子,借口还是多. 那就说一些现状嘛,语言重在的是应用这个方 ...
- PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
向mysql 插入数据时,很多时候我们想知道刚刚插入数据的id,这对我们很有用.下面这篇文章就详细给大家介绍了利用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID,有需要的朋友 ...
- Codeforces Round #246 (Div. 2) C. Prime Swaps(贪心,数论)
题目链接:http://codeforces.com/contest/432/problem/C 首先由题意分析出:这些数是从1到n且各不相同,所以最后结果肯定是第i位的数就是i. 采用这样一种贪心策 ...
- 搭建了一个Apache+Php+MySQL的服务器。要如何通过Apache发布网站使得其他的电脑可以通过局域网访问?
源址: 1.网站的代码放在文件夹“www”下: 2.配置apache允许他人访问网站:在wamp/apache/apache版本/conf的httpd.conf文件修改代码如下: Optio ...
- Mybatis中对于标签的配置可能不会出现自动提示解决方案
解决办法:引入mybatis-3-config.dtd 文件 Window-preferences-搜索xml-xml catalog <!DOCTYPE configuration PUBLI ...
- 19年博客flag
目录 为什么没有年终总结 为什么今天更新了 19年博客flag 个人博客链接:我在马路边 https://hhongwen.cn 更好的阅读体验点击查看原文:19年博客flag 原创博客,转载请注明出 ...
- poj2411 Mondriaan's Dream[简单状压dp]
$11*11$格子板上铺$1*2$地砖方案.以前做过?权当复习算了,毕竟以前学都是浅尝辄止的..常规题,注意两个条件:上一行铺竖着的则这一行同一位一定要铺上竖的,这一行单独铺横的要求枚举集合中出现连续 ...
- JavaWeb框架_Struts2_(一)----->Struts2 框架入门
1. 框架入门 2.1 Struts2简介 (1). Struts2是一种基于MVC模式的的轻量级Web开发框架. MVC模式:MVC全名是Model View Controller,是模型(mo ...
- plsql Developer----plsql软件总结(待续更新)
如何查看数据库所有的表 打开pl/sql Developer连接上数据库了以后,在菜单 Tools 下面有个 Object browser 将其打勾(如果已经打勾了就不用管了),之后在IDE的左边有个 ...