MATLAB的一些基础知识
1.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗?
a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)))
a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3')))
a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')))
a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)))
a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)))
a7=sin(sym(pi/4+exp(0.7+pi/3)))
a8=sym(sin(pi/4+exp(0.7+pi/3)))
(提示:可用vpa观察误差;注意数位的设置)。
解答:
这里首先介绍一个函数vpa:
%{
一、要修改运算的精度,需要digits()函数和vpa()函数同时执行,单独使用digits函数不会改变运算精度!
二、vpa()函数对函数内部的变量运算过程不修改精度
%}
clear,clc;
format long;
%digits(m) ,这里设置的vpa会使用digits设定的精度位数m
digits(),vpa(pi),vpa(*pi)
%vpa(pi,n) n>=m才可以
vpa(pi,)
执行结果为:

这里面说明了vpa()函数的用法,本次实验保留位数为30.
接着介绍一个函数sym.
S = sym(A)将非符号对象(如,数字,表达式,变量等)A转换为符号对象,并存储在符号变量S中. 但是需要注意的一点是:如果A是整数,那么sym('A')和sym(A)没有任何区别,但是如果不是整数,结果可能不一样:前者以字符串的形式传给符号运算内核,可以保留完整的精度;而后者经过浮点数运算之后再转换为符号类型,存在精度损失。
测试代码如下:
%整数
sym('')==sym() %非整数,前者以字符串的形式传给符号运算内核,可以保留完整的精度;
%而后者经过浮点数运算之后再转换为符号类型,存在精度损失。
sym('sqrt(2)-1')-sym(sqrt()-)
测试结果如下:

本题测试代码如下:
clear,clc;
format long;
digits(); a1=sin(sym(pi/)+exp(sym(0.7)+sym(pi/)));
a2=sin(sym(pi/)+exp(sym(0.7))*exp(sym(pi/)));
a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3')));
a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')));
a5=sin(sym(pi/)+exp(sym(0.7+pi/)));
a6=sin(sym(pi/)+sym(exp(0.7+pi/)));
a7=sin(sym(pi/+exp(0.7+pi/)));
a8=sym(sin(pi/+exp(0.7+pi/))); %vpa(a1,)
da2 = vpa(a1-a2,)
da3 = vpa(a1-a3,)
da4 = vpa(a1-a4,)
da5 = vpa(a1-a5,)
da6 = vpa(a1-a6,)
da7 = vpa(a1-a7,)
da8 = vpa(a1-a8,)
测试代码
执行结果如下:da2 =0.0 da3 =0.000000000526537778494579980984266569899 da4 =0.0000000000162197098301695333225327542401
da5=0.000000000000000887482271695958461952368291362 da6=0.00000000000000148912212817656334175587101055
da7=0.00000000000000151885559392782263589719125845 da8=0.00000000000000151859755909122793880745885451
到这里可以看出除了第一个测试语句与标准语句结果相同外,其余皆有误差。误差原因:从结果可以看出sym(A)与sym('A')的误差差别对结果带来的影响。
2. 请读者先运行以下指令
a=0;b=pi;
t1=a:pi/9:pi;
t2=linspace(a,b,10);
T=t1*t2';
F=find(T<0);
然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?t1完全等于t2吗?为什么?
a是单变量 ,t1是1*10的向量,T是单变量([1][10] * [10]*[1] -->[1]*[1]),F=0.
t1完全等于t2,因为t1是从0开始到pi,间隔为pi/9的序列,共10个数;而t2是0到pi之间的等间隔的十个数。
3. 对于指令A=reshape(1:18,3,6)产生的数组
A =
1 4 7 10 13 16
2 5 8 11 14 17
3 6 9 12 15 18
先请你用一条指令,使A数组中取值为2、4、8、16的元素都被重新赋值为NaN。然后,再请你用一条指令,把A数组的第4、5两列元素都被重新赋值为Inf。
A([2 4 8 16])=NaN
A([10 11 12 13 14 15])=Inf
执行结果如下图:

MATLAB的一些基础知识的更多相关文章
- Matlab - 基础知识
Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...
- 使用matlab处理图像的基础知识
MATLAB基本函数一 矩阵运算 1.基本算数运算(加减乘除) + -运算要求矩阵维数相同,例m*n * /运算,例A=B*C,B矩阵是m*n矩阵,B是n*p矩阵,则A是m*p矩阵 A/B相当于A*i ...
- Matlab--从入门到精通(chapter2 matlab 基础知识)
Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...
- Matlab图像处理基础知识
Matlab图像处理基础知识 Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值. 1图像表达方式: 像素索引 图像被视为离散单元.如使用I(2,2)可以获取第二行第二列的像素值 空 ...
- Matlab高级教程_第一篇:Matlab基础知识提炼_02
第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...
- Matlab高级教程_第一篇:Matlab基础知识提炼_01
第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...
- 转载 Deep learning:一(基础知识_1)
前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长.不过在这这之前还是复习下m ...
- Deep learning:一(基础知识_1)
本文纯转载: 主要是想系统的跟tornadomeet的顺序走一遍deeplearning; 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 ...
- DL一(ML基础知识)
基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.e ...
随机推荐
- java中抽象、分装、继承和多态的理解
1.抽象.封装装.继承和多态是java面向对象编程的几大特点. 抽象:所谓抽象就是对某件事务,我们忽略我们不关心不需要的部分,提取我们想要的属性和行为,并且以代码的形式提现出来:例如我们需要对一个学生 ...
- 小记max-with与 max-device-width
max-with是浏览器的宽度,max-device-width是设备显示器的宽度 浏览器宽度不等于显示器宽度 浏览器可以缩小 1.max-device-width是设备整个显示区域的宽度,例如,真实 ...
- 简单实用的二级树形菜单hovertree
原创 hovertree是一个仿京东的树形菜单jquery插件,暂时有银色和绿色两种. 官方网址:http://keleyi.com/jq/hovertree/欢迎下载使用 查看绿色效果:http:/ ...
- 在sharepoint2013中如使用PowerView
在sharepoint2013中如使用PowerView 安装前提 Sql sqlserver 2012 sp1 Sharepoint2013 Sql server 2012 sp1 PowerPiv ...
- SharePoint 2013 搜索功能,列表项目不能完全被索引
描述 最近一个站点,需要开启搜索功能,然后创建内容源,开始爬网,发现列表里只有一部分被索引,很多项目没有被索引,甚是奇怪,如下图(其实列表里有80几条项目). 首先爬网账号是系统账号.服务器管理员,所 ...
- sharepoint 提升权限报错
现象: sharepoint中提升权限是为了模拟管理员操作,但是对于普通用户对item的更新和删除照成错误 解决办法: 去掉权限升级 说明: 升级权限能不用尽量不用,同时也不好排查权限问题.
- Atitit.报名模块的管理
Atitit.报名模块的管理 1.1. 统计报名数据1 1.2. 存储1 1.3. 报名1 1.4. 查看报名数据3 1.1. 统计报名数据 select count(*) as nums from ...
- iOS---stringByAddingPercentEscapesUsingEncoding:' is deprecated: first deprecated in iOS 9.0 - Use -stringByAddingPercentEncodingWithAllowedCharacters: instead,
旧方法 NSString *encoded = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; iOS9 ...
- 【Swift 2.1】共享文件操作小结(iOS 8 +)
前言 适用于 iOS 8 + 本地共享文件列表 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs ...
- iOS 学习 - 24 全局跑马灯,支持后台回到前台
思路: 1.创建一个单例 + (instancetype)shareManager { static CCPaomaView *pModel = nil; static dispatch_once_t ...