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的一些基础知识的更多相关文章

  1. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  2. 使用matlab处理图像的基础知识

    MATLAB基本函数一 矩阵运算 1.基本算数运算(加减乘除) + -运算要求矩阵维数相同,例m*n * /运算,例A=B*C,B矩阵是m*n矩阵,B是n*p矩阵,则A是m*p矩阵 A/B相当于A*i ...

  3. Matlab--从入门到精通(chapter2 matlab 基础知识)

    Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...

  4. Matlab图像处理基础知识

    Matlab图像处理基础知识 Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值. 1图像表达方式: 像素索引 图像被视为离散单元.如使用I(2,2)可以获取第二行第二列的像素值 空 ...

  5. Matlab高级教程_第一篇:Matlab基础知识提炼_02

    第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...

  6. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  7. 转载 Deep learning:一(基础知识_1)

    前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长.不过在这这之前还是复习下m ...

  8. Deep learning:一(基础知识_1)

    本文纯转载: 主要是想系统的跟tornadomeet的顺序走一遍deeplearning; 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 ...

  9. DL一(ML基础知识)

    基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.e ...

随机推荐

  1. hibernate配置文件hibernate.cfg.xml和.hbm.xml的详细解释

    原文地址:http://blog.csdn.net/qiaqia609/article/details/9456489 hibernate.cfg.xml -标准的XML文件的起始行,version= ...

  2. DDD开发框架ABP之动态Web API层

    建立动态Web API 控制器 ASP.NET Boilerplate 能够自动为您的应用层产生Web API层.比如说我们有如下的一个应用服务: public interface ITaskAppS ...

  3. MongoDB基础入门001--安装

    关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中"集合" 就是对应关系数据库中的"表",& ...

  4. CSS制作凹环特效

    就是在地面上打凿出凹的圆环效果,利用linear-gradient线性渐变增强内环质感,再用伪类after元素设置中心圆凸块的位置以及大小与跟内环之间的阴影度,然后设置内环的颜色就行了:第四个环上面的 ...

  5. 在C#开发中如何使用Client Object Model客户端代码获得SharePoint 网站、列表的权限情况

    自从人类学会了使用火,烤制的方式替代了人类的消化系统部分功能,从此人类的消化系统更加简单,加速了人脑的进化:自从SharePoint 2010开始有了Client Side Object Model ...

  6. Html5的一些基础知识

    <!DOCTYPE html><html><head><meta charset="utf-8" /><title>页面 ...

  7. iOS之UIScrollView循环滚动

    #import "ViewController.h" #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width #d ...

  8. iOS-自动布局Autolayout(原创)

    前言 基础知识 在一定情况下我们需要用到自动布局(autolayout) 这样我们就能使视图与视图之间的位置相互关联起来 横向:距离父视图左侧100 视图本身的宽度最小是100 距离父视图右侧是100 ...

  9. SYMBDSNAP_SDK[3943]: Failed to open device: /dev/symbdsnapctl, errno: 2

    在Linux的日志/var/log/message里面看到下面错误信息: Oct 26 09:48:42 xxxxxxx SYMBDSNAP_SDK[3943]: Failed to open dev ...

  10. SQL Server修改数据库对象所有者(Owner)浅析

    在SQL Server数据库中如何修改数据库对象(表.视图.存储过程..)的所有者(Owner)呢?一般我们可以使用系统提供的系统存储过程sp_changeobjectowner来修改. 我们先看看s ...