欢迎来到我的范文网!

matlab取余数

数学教案 时间:2020-05-19

【www.myl5520.com--数学教案】

MATLAB中的取整函数
篇一:matlab取余数

zhangshujun

zhangshujun

取模(MOD)和取余(REM)的区别
篇二:matlab取余数

昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下:

通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:

当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。

这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。

rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)

两个异号整数取模取值规律 (当是小数时也是这个运算规律,这一点好像与C语言的不太一样)

先将两个整数看作是正数,再作除法运算

①能整除时,其值为0

②不能整除时,其值=除数×(整商+1)-被除数

例:mod(36,-10)=-4

即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。

例:mod(9,1.2)=0.6;

例:

>> mod(5,2)

ans =1 %“除数”是正,“余数”就是正

>> mod(-5,2)

ans =1

>> mod(5,-2)

ans =-1 %“除数”是负,“余数„就是负

>> mod(-5,-2)

ans =-1 %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同

>> rem(5,2)

ans =1 %“被除数”是正,“余数”就是正

>> rem(5,-2);

ans =1

>> rem(-5,2)

ans =-1 %“被除数”是负,“余数”就是负

>> rem(-5,-2)

ans =-1

慢慢体会,两者确实不一样

MatLab练习题-程序设计
篇三:matlab取余数

MatLab 练习题(4)-程

序设计

学号: 班级: 姓名:

注意: 1,请按要求作题,直接输入答案,并保存文件.

2,仔细填写 “学生信息”.

3,把此word文档的文件名更名为你的 “学号第*次”.上传至http://10.1.9.91. 例: “MatLab练习册.doc” ——-> “200504101第四次作业.doc” )

1, 编辑函数文件hanshu.m,该函数是f(x)x33x2x3,并用它来计算f(0.34)、f(3)、f(6.87)、f(3)f(2)f2(4)

答案:(填写程序语句和结果)

函数文件:

hanshu.m

function f=hanshu(x)

f=x^3-3*x^2-x+3;

结果:

hanshu(0.34)

hanshu(3)

hanshu(6.87)

hanshu(3)-hanshu(2)*[hanshu(-4)]^2

ans =

2.3525

ans =

ans =

178.7820

ans =

33075

2,编程求一个四位数abca,使abca(5c1)2。

答案:(填写程序语句和结果)

程序:

for a=1:9

for b=0:9

for c=0:9

if a*1000+b*100+c*10+a==(5*c+1)^2

x=a*1000+b*100+c*10+amatlab取余数。

end

end

end

end

x

结果:

x =

1681

3利用二分法编程求方程 x33x2x30 在[0,3]内的根.

答案: (填写程序语句和结果)

程序: a=0;

b=3;

x=a:b;

f =@(x)x^3-3*x^2-x+3;

c=(a+b)./2;

while abs(b-a)>1e-6

if f(c)*f(b)<0

a=c;

else

b=c;

end

c=(a+b)./2;

x=c;

end

x

结果:x =

1.0000

*4, 利用二分法编程求方程 tan(x)-x-0.5=0 在[0,1.5]内的根.

答案:(填写程序语句和结果)

a=0;

b=1.5;

x=a:b;

f =@(x)tan(x)-x-0.5;

c=(a+b)./2;

matlab取余数。

while abs(b-a)>1e-6

if f(c)*f(b)<0

a=c;

else

b=c;

end

c=(a+b)./2;

x=c;

end

x

结果x =

0.9750

5,列出所有的水仙花数, 水仙花数是一个三位数,其各位数字立方和等于该数本身. 例如: 153135333

答案:(填写程序语句和结果)

for a=1:9

for b=0:9

for c=0:9

if a*100+b*10+c==a^3+b^3+c^3

x=a*100+b*10+c

end

end

end

end

结果:

x =

153

x =

370

x =

371

x =

407

x =

407

111*6, 利用 1 公式求的近似值,直到误差小于106 4357

答案: (填写程序语句和结果)

程序:

s=0;

k=1;

while 1/(2*k-1)>10^(-6)

s=s+(-1)^(k+1)/(2*k-1);

k=k+1;

end

s1=4*s

s1 =

3.141590653589692

7,写出小于5000的、立方的末四位是8888的所有自然数的程序

答案: (填写程序语句和结果)

程序:

for a=0:5000

if rem(a^3,10000)==8888

a

end

end

结果:

a =

1942

a =

4442

8,先思考如何用推理的方法(1)求Fibonacc数列中第2007个数除以6 的余数(2)若将Fibonacc数列按如下方式分组:(1)、(1,2)、(3,5,8)、(13,21,34,55)、„„问2007组数的和除以6的余数是几?然后再用matlab编程验证你的结果。 答案: (填写你的思考过程和你的结果以及matlab程序语句)

分析:斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34„„ 注意:

0是第0项,不是第一项。

这个数列从第二项开始,每一项都等于前两项之和。(分析参考网上)

(1) 程序:matlab取余数。

a(1)=1;

a=1;

for i=3:2007

k=i-1;

j=i-2;

a(i)=a(k)+a(j);

end

rem(a(2007),6)

结果:

ans =

NaN

a(2007)

ans =

Inf

119*,应用e11......近似求e之值,要求误差小于106 2!n!

程序:

n=1;

c=0;

m=1;

while 1/n>10^(-6);

for c=c+1;

n=n*c;

m=m+1/n;

end

m1=m;

end

m1

结果:

m1 =

2.718281801146385

10,定义一个函数shjiech计算双阶乘,要求对输入的一个整数N,该函数能立即计算出其双阶乘。并用它来计算200!!

答案: (填写程序语句和结果)

11,定义多元函数f(x,y)(xy)e

f(0,0),并画出它的图形。 22(x2y2),并用它来计算f(2,3)、f(3,4)、

答案: (填写程序语句和结果)

function m=f(x,y)

m=(x^2+y^2)*exp(-x^2-y^2)

结果: f(-2,3)

f(3,4)

f(0,0

ans =

2.9384e-005

ans =

3.4720e-010

ans

作图程序: x=-4:0.05:4;y=x;

[X,Y]=meshgrid(x,y);

Z=(X.^2+Y.^2)*exp(-X.^2-Y.^2);

mesh(X,Y,Z)

图:

MATLAB常用命令速查
篇四:matlab取余数

在这里我只给出函数的名字及其功能,至于其格式的调用方法,请参阅 MATLAB 的在线帮助,只需要在命令窗口输入 help funname。制作本表主要是为了便于应用时查阅。限于个人水平和资料,错误在所难免,望批评指正,在下不胜感激!

MATLAB 中的常用函数

MATLAB 中的函数

函数名 syms vpa()

申明符号变量 直接对符号求值

函数功能

工具箱 symbolic symbolic symbolic symbolic symbolic MATLAB MATLAB MATLAB symbolic symbolic MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB

符号表达式的化简,还可以调用 sincos(),numden(),expand()等具体化简方

simple() 法,factor()函数还可以用于整数的质因数分解 subs() latex() floor() rat() rem() gcd()

符号表达式的变量替换

将符号表达式转换成LATEX排版语言支持的字符串 该函数可以对数值进行取整运算,相应的取整函数还有 round(),fix(),ceil()等,但是它们的涵义是不同的 将矩阵的各个数用 简分式表示 将矩阵的各个数值取余数

求两个整数的 大公约数,lcm()求 小公倍数

isprime() 判定矩阵内各个整数是否为质数 for while if switch try

for循坏结构,和end语句共同构成循坏,break语句可以终止本级循坏 while循坏结构

条件转移语句,可以和elseif,else语句连用 开关结构,和case及otherwise语句连用 试探语句,可以和catch连用

function 函数引导语句 inline @ plot() set() get()

inline函数,可以定义直接取值的函数

匿名函数,功能更强于inline函数,是MATLAB7.0提出的新函数 二维直角坐标系曲线绘制 MATLAB对象属性设定函数 MATLAB对象属性提取函数

二维条形图绘制,其他还有

bar()

comet(),feather,hist(),polar(),stairs(),compass(),

errorbar(),fill(),loglog(),quiver(),stem(),semilogx(),semilogy()等

ezplot() 二维隐函数曲线绘制函数 plot3()

三维曲线绘制函数,其余三维曲线绘制函数包括 stem3(),comet3(),fill3(),bar3()等

MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB

二维或三维网格数据生成 mesh() surf() shading view()

三维网格曲线绘制

三维表面图形绘制,类似的还有

surfc(),surfl(),waterfall(),contour(),contour3()等 曲面类型设置命令,可以设置成flat,interp,faceted 设置三维图形的视角

微积分

函数名

limit() diff() int() taylor() jacobian() mtaylor() fseriies() symsum() gradient() trapz() quadl dblquad()

函数功能

工具箱

(toolbox)

极限问题求解和单边极限求解问题,可嵌套求多symbolic 变量极限

求解导数问题,还可以用于求解高阶导数和偏导symbolic 数

求解不定积分与定积分,可以嵌套求解多重积分 symbolic Taylor幂级数展开 Jacobian矩阵求解 多变量的Taylor展开

Fourier级数展开,或采用定义直接积分,求解级数系数

级数求和,可以用无穷级数的求和

symbolic symbolic Maple symbolic symbolic

二元函数的梯度的计算,真正的梯度还应该由函MATLAB 数下一个语句求出

对已知数据点用梯形法求数值积分,精度不高

MATLAB

数值积分函数,精度要求不高时还可以使用quadMATLAB ()函数

矩形区域的二重数值积分

MATLAB NIT MATLAB

非矩形区域的二重数值积分 长方体区域的三重数值积分

线性代数

函数名

ones() zeros() rand() randn() diag() hankel() vander() hilb()

函数功能matlab取余数。

生成幺矩阵,即全部元素都是1的矩阵 生成零矩阵

生成[0,1]区间均匀分布的随机数矩阵 生成标准正态分布N(0,1) 的随机数矩阵 生成对角矩阵或一般矩阵提取对角线元素的函数 生成Hankel矩阵 生成Vandermonde矩阵 生成Hilbert矩阵

工具箱

MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB symbolic symbolic MATLAB MATLAB

invhilb() 生成Hildert逆矩阵 compan() sym det() trance() rank() norm() poly()

由多项式构造伴随矩阵 将已知矩阵转换成符号矩阵 求矩阵的行列式,同样支持符号运算 求矩阵的迹,同样支持符号运算 求矩阵的秩,同样支持符号运算 求矩阵的各种范数,不支持符号运算 求矩阵特征多项式

polyvalm() 矩阵的多项式运算,同样支持符号运算 polyval() 矩阵的多项式点运算,同样支持符号运算 poly2num() 数值向量转换为符号多项式 sym2poly() 符号多项式转换位数值向量 inv() pinv() eig() orth() lu() chol() jordan() svd() null() lyap() dlyap() are()

矩阵求逆

矩阵的Moor-Penrose广义逆,不支持符号运算

求矩阵的特征值、特征向量或广义特征值,同样适合于符号运算 MATLAB 矩阵的正交基计算,不支持符号运算 矩阵的LU分解,不支持符号运算

对称矩阵的Cholesky分解,不支持符号运算 符号矩阵的Jordan矩阵转换 矩阵的奇异值分解,支持符号运算

矩阵的化零空间或基础解系计算,支持符号运算 求解连续Lyapunov方程、Sylvester方程的数值解 求解离散Lyapunov方程数值解 求解Riccati方程的数值解

MATLAB MATLAB MATLAB symbolic MATLAB MATLAB 控制系统 控制系统 控制系统

abs()

面向矩阵元素的模运算,类似的函数还有

sqrt(),exp(),sin(),cos(),tan(),asin(),acos(),atan(), atan2(),log(),log10(),real(),imag(),conj(),ceil(), floor(),round(),fix()等

MATLAB

expm() funm()

矩阵的指数运算,支持符号运算,其他函数为 expm1(),expm2(),expm3()等,但不支持符号运算

MATLAB

矩阵函数计算,可以求取任意非线性矩阵函数,不支持符号运算 MATLAB

积分变换与复变函数

函数名

laplace() ilaplace() fourier() ifourier() fouriersin fouriercos mellin invmellin hankel invhankel ztrans() iztrance() gcd() residue()

函数功能

函数的Laplace变换 函数的Laplace反变换 函数的Fourier变换 函数的Fourier反变换 函数的Fourier余弦变换 函数的Mellin变换 函数的Mellin反变换 函数的Hankel变换 函数的Hankel反变换 函数的Z变换 函数的Z反变换

函数的 大公约数,lcd()可以求 小公倍数 有理函数的部分分式展开,数值方法

工具箱

symbolic symbolic symbolic symbolic Maple Maple Maple Maple Maple Maple symbolic symbolic symbolic MATLAB

函数的Fourier正弦变换,还可以通过符号积分求解symbolic

函数的Fourier正弦反变换

代数方程与 优化问题

函数名

solve() fsolve() optmset() fminunc() linprog() quadprog()

方程的数值解 最优控制参数 无约束最优化问题求解 线性规划问题求解 二次型规划问题求解

函数功能

方程的解析解,尤其适用多项式方程

工具箱

symbolic MATLAB Optimization MATLAB Optimization Optimization Optimization

无约束最优化问题求解

fmincon() bintprog()

一般非线性规划问题求解

Optimization

MATLAB7.0 提供的新的 0-1 线性规划求解函数 Optimization

本文来源:http://www.myl5520.com/jiaoanxiazai/106404.html

推荐内容