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 ...
随机推荐
- HTTP 协议整理(转)
HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家斧正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...
- MYSQL新手入门篇
一.数据库的简介 什么是数据库? 数据的仓库,如:在atm的实例中我们创建一个db目录称之为数据库 什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 他们 ...
- 公司内部的一篇关于dom方法的分享
第一部分 dom node类型 nodeType 属性 nodeType 属性返回节点的类型.nodeType 是只读的. 比较重要的节点类型有: 元素类型 NodeType 元素 1 属性 2 文本 ...
- li进度条宽度和颜色按顺序显示的效果。
实际项目中li和里边的数值是动态生成的,需要控制它的宽度和颜色,效果如图: 如果能实现颜色按数值规律变化就好了,目前颜色是固定到数组中的. 实例代码如下: <!DOCTYPE html>& ...
- angularJs
学了差不多一个礼拜,感觉这个库还是很不错的,在应用中一些小笔记,其实这些笔记现在来看确实很基础,但是把这个博客当成我自己的一个记录历程,所以我也把这点笔记拿上来: 1.是一个js框架,是一个以js语言 ...
- Html5的一些基础知识
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>页面 ...
- android重复的文件复制APK META-INF许可证错误记录
* What went wrong:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> c ...
- Objective-C Runtime 运行时之四:Method Swizzling
理解Method Swizzling是学习runtime机制的一个很好的机会.在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文. Me ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
- iOS AFNetworking内存泄漏处理方法
iOS AFN内存泄漏处理方法 细心的你是否也发现AFN的内存泄漏的问题了呢. 在这里给大家提供一个解决AFN内存泄漏的方法. 单例解决AFN内存泄漏 + (AFHTTPSessionManager ...