当前位置: 首页 > news >正文

Matlab程序练习

Part1

1.求 [100,999] 之间能被 21整除的数的个数。

程序:

主文件:main.m

clear;
start_num = 100;
end_num = 999;
div_num = 21;
res = div(start_num,end_num,div_num);
fprintf("[%d,%d]之间能被%d整除的数的个数为%d个\n",start_num,end_num,div_num,res);

函数文件:div.m

function num=div(sta,ed,divnum)num=0;for i=sta:edif mod(i,divnum)==0num = num+1;endend
end

运行截图:
在这里插入图片描述

2.从键盘输入一个4位的整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第一位数与第三位数互换,第二位数与第四位数互换。

程序:

主文件:main.m

clear;
n=input('请输入一个4位整数:');
res = process(n);
fprintf("加密后的数字为:%d\n",res);

函数文件:process.m

function ennum = process(num)ennum=0;n4 = mod(num,10)+7;n3 = mod(fix(num/10),10)+7;n2 = mod(fix(num/100),10)+7;n1 = fix(num/1000)+7;n4 = mod(n4,10);n3 = mod(n3,10);n2 = mod(n2,10);n1 = mod(n1,10); ennum = n3*1000+n4*100+n1*10+n2;
end

在这里插入图片描述

3.一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称之为绝对素数,例如13是绝对素数,试求出所有两位绝对素数。要求:定义一个判断素数的函数文件。

程序:

主文件:main.m

clear;
abs_prime=[];
for num=10:99unit = mod(num,10);decade = fix(num/10);if isprime(num)==1 && isprime(unit*10+decade)==1abs_prime(end+1) = num;end
end
fprintf("所有的两位绝对素数为:");
disp(abs_prime);

函数文件:isprime.m

function flag=isprime(num)flag=1;for i=2:num-1if mod(num,i)==0flag=0;breakendend
end

运行截图:

在这里插入图片描述

4.设 f ( x ) = 1 ( x − 2 ) 2 + 0.1 + 1 ( x − 3 ) 4 + 0.01 f(x)=\frac{1}{(x-2)^2+0.1}+\frac{1}{(x-3)^4+0.01} f(x)=(x2)2+0.11+(x3)4+0.011,编写一个函数文件fx.m,使得调用fx时,x 可用矩阵代入,得出的 f ( x ) f(x) f(x)为同阶矩阵。

程序:

主文件:main.m

clear;
x = input('请输入x的值,可以为一个数字,也可以为一个矩阵\nx=');
disp(fx(x));

函数文件:fx.m

function matrix = fx(x)matrix = 1./((x-2).^2+0.1) + 1./((x-3).^4+0.01);
end

运行截图:

在这里插入图片描述

5.已知 y = f ( 40 ) f ( 30 ) + f ( 20 ) y=\frac{f(40)}{f(30)+f(20)} y=f(30)+f(20)f(40),

(1)当 f ( n ) = n + 10 l n ( n 2 + 5 ) f(n)=n+10ln(n^2+5) f(n)=n+10ln(n2+5)时, y y y 的值是多少?

(2)当 f ( n ) = 1 ∗ 2 + 2 ∗ 3 + 3 ∗ 4 + ⋯ + n ∗ ( n + 1 ) f(n)=1*2+2*3+3*4+\cdots+n*(n+1) f(n)=12+23+34++n(n+1) 时, y y y的值是多少?

程序:

主文件:main.m

clear;
y1 = fx1(40)/(fx1(30)+fx1(20));
fprintf("第一问:y的值为%f\n",y1);
y2 = fx2(40)/(fx2(30)+fx2(20));
fprintf("第二问:y的值为%f\n",y2);

函数文件:
fx1.m

function num=fx1(n)num = n+10*log(n^2+5);
end

fx2.m

function num = fx2(n)num=0;for i=1:nnum = num+(i*(i+1));end
end

运行截图:

在这里插入图片描述

6.编写一个函数,计算 x=-5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0 对应的y值。

y = { x 2 + x − 6 , x < 0 且 x ≠ − 3 x 2 − 5 x + 6 , 0 ≤ x < 5 且 x ≠ 2 及 x ≠ 3 x 2 − x − 1 , 其他 y = \begin{cases} x^2+x-6, x<0且x\neq-3\\ x^2-5x+6,0\leq x<5且x\neq 2及x\neq3\\ x^2-x-1,其他 \end{cases} y= x2+x6,x<0x=3x25x+6,0x<5x=2x=3x2x1,其他

程序:

主文件:main.c

clear;
x = [-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
y = [];
for i=1:length(x)y(end+1) = fx(x(i));
end
disp(y);

函数文件:fx.m

function y=fx(x)y=0;if x<0 && x ~= -3y = x^2 + x - 6;elseif 0<=x && x<5 && x~=2 && x~=3y = x^2 - 5*x +6;elsey = x^2-x-1;end
end

运行截图:

在这里插入图片描述

7.编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值

程序:

主文件:main.m

clear;
x = input('x=');
[meann,maxi,mini,rms] = calc(x);
fprintf("平均值为%f,最大值为%f,最小值为%f,均方根值为%f\n",meann,maxi,mini,rms);

函数文件:calc.m

function [meann,maxi,mini,rms]=calc(x)meann = mean(x);maxi = max(x);mini = min(x);N = length(x);sigama = 0;for i=1:Nsigama = sigama+x(i)^2;endrms = sqrt(1/N * sigama);

运行截图:

在这里插入图片描述

Part2

1.设 y = ( 0.5 + 3 sin ⁡ x 1 + x 2 ) cos ⁡ x y = ( 0.5 + \frac { 3 \sin x } { 1 + x ^ { 2 } } ) \cos x y=(0.5+1+x23sinx)cosx,把 x = 0 ∼ 2 π x=0 \sim 2\pi x=02π 区间分为101点,绘制函数的曲线。

程序:

clear;
x = 0:2*pi/101:2*pi;
y = (0.5+(3.*sin(x))./(1+x.^2)).*cos(x);
plot(x,y,'LineWidth',2);
xticks(0:pi/2:2*pi);
xticklabels({'0','\pi/2','\pi','3\pi/2','2\pi'});
t = title('$ y=(0.5+\frac{3 \sin x}{1+x^2}) \cos x $');
set(t,'Interpreter','latex','FontSize',14);

运行截图:

在这里插入图片描述

2. 用不同线型和颜色在同意坐标内绘制曲线 y = 3 e x p ( − 1.5 x ) s i n ( 3 π x ) y=3exp(-1.5x)sin(3\pi x) y=3exp(1.5x)sin(3πx)及其包络线。

程序:

clear;
x = -3*pi:pi/50:3*pi;
y = 3.*exp(-1.5.*x).*sin(3*pi.*x);
[up,lo] = envelope(y);
plot(x,y,'r');
hold on;
plot(x,up,'b--',x,lo,'b--');
t = title('$ y=3exp(-1.5x) \sin(3\pi x) $');
set(t,'Interpreter','latex','FontSize',14);

运行截图:

在这里插入图片描述

3.绘制 s i n x 、 s i n ( 2 x ) 、 s i n ( x 2 ) sinx、sin(2x)、sin(\frac{x}{2}) sinxsin(2x)sin(2x)的函数曲线并添加图形标注,自变量范围自选,标注类型自选。

程序:

clear;
x = -4*pi:pi/50:4*pi;
y1 = sin(x);
y2 = sin(2.*x);
y3 = sin(x./2);
plot(x,y1,'blue',x,y2,'red',x,y3,'green','LineWidth',1);
h = legend('$y = \sin(x)$','$y = \sin(2x)$','$y = \sin(\frac{x}{2})$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',14);

运行截图:

在这里插入图片描述

4.已知 y 1 = x 2 , y 2 = c o s ( 2 x ) , y 3 = y 1 ∗ y 2 y_1=x^2,y_2=cos(2x),y_3=y_1*y_2 y1=x2,y2=cos(2x),y3=y1y2,完成下列操作。

(1)在同一坐标系下用不同的颜色、线宽均设置为2绘制三条曲线,并为各条曲线加上图例;

(2)以子图(subplot)形式绘制3条曲线;

程序:

clear;
x = -4*pi:pi/50:4*pi;
y1 = x.*x;
y2 = cos(2.*x);
y3 = y1.*y2;%Request1
figure(1);
plot(x,y1,'r',x,y2,'g',x,y3,'b','linewidth',2);
h = legend('$y_{1} = x^{2}$','$y_{2} = \cos(2x)$','$y_{3} = y_{1}*y_{2}$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',12);%Request2
figure(2);
subplot(1,3,1);
plot(x,y1);
title('$y_{1} = x^{2}$','Interpreter','latex','fontsize',12);
subplot(1,3,2);
plot(x,y2);
title('$y_{2} = \cos(2x)$','Interpreter','latex','fontsize',12);
subplot(1,3,3);
plot(x,y3);
title('$y_{3} = y_{1}*y_{2}$','Interpreter','latex','fontsize',12);

运行截图:

在这里插入图片描述

在这里插入图片描述

5.在同一张图中绘制下面三个函数在 t ∈ [ 0 , 4 π ] t\in[0,4\pi] t[0,4π]的图像。 { y 1 = t y 2 = t y 3 = 4 π e − 0.1 t s i n ( t ) \begin{equation}\begin{cases}y_1=t \\ y_2=\sqrt{t} \\y_3=4\pi e^{-0.1t}sin(t) \end{cases}\end{equation} y1=ty2=t y3=4πe0.1tsin(t)

程序:

clear;
t = 0:pi/50:4*pi;
y1 = t;
y2 = sqrt(t);
y3 = 4*pi*exp(-0.1.*t).*sin(t);
plot(t,y1,t,y2,t,y3);
legend('$ y = t $','$y = \sqrt{t}$','$y = 4\pi e^{-0.1t} sin(t)$','interpreter','latex','location','NorthEastOutside');
xticks(0:pi/2:4*pi);
xticklabels({'0','\pi /2','\pi','3\pi/2','2\pi','5\pi /2','3\pi','7\pi /2','4\pi'});

运行截图:

在这里插入图片描述

6.创建指数函数rexp,绘制指数信号 y = A ∗ e x p ( α ∗ t ) y=A*exp(\alpha*t) y=Aexp(αt),在三种情况下 ( ( 1 ) α = 0.5 , ( 2 ) α = 0 , ( 3 ) α = − 0.5 (1)\alpha=0.5,(2)\alpha = 0,(3)\alpha=-0.5 (1)α=0.5,(2)α=0,(3)α=0.5 )的时域波形,其中A自赋值,时间区间都是[-3,3]。

程序:

主文件:main.m

clear;
%rexp()函数传入两个参数 A 和 α 
A = input('A=');
x = -3:1/50:3;
y1 = rexp(A,0.5);
y2 = rexp(A,0);
y3 = rexp(A,-0.5);
plot(x,y1,x,y2,x,y3);
h = legend('$\alpha = 0.5$','$\alpha = 0$','$\alpha = -0.5$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',12);
title(sprintf('A=%.2f',A));

函数文件:div.m

function y=fx7(x)y=[];for i=1:length(x)if x(i)<=0y(end+1)=sin(x(i));elseif 0<=x(i) & x(i)<=3y(end+1)=x(i);elsey(end+1)=-x(i)+6;endend

运行截图:

在这里插入图片描述

7.编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图像。函数用function写出来,主程序里给出区间,并画图。KaTeX parse error: {equation} can be used only in display mode.

程序:

clear;
x = -6:1/50:6;
y = fx7(x);
plot(x,y);
text(-5.8,0,'$y=sin(x),x\leq0$ ','interpreter','latex','fontsize',10);
text(0.1,1,'$y=x,0<x\leq3$ ','interpreter','latex','fontsize',10);
text(3.1,0,'$y=-x+6,x\geq3$ ','interpreter','latex','fontsize',10);

运行截图:

在这里插入图片描述

8.利用plot3绘制下列三维图形,并对图形进行相关的辅助说明

(1)KaTeX parse error: {equation} can be used only in display mode. (2) KaTeX parse error: {equation} can be used only in display mode.

程序:

程序:

clear;
t = -20*pi:pi/50:20*pi;
x1 = cos(t);
y1 = sin(t);
z1 = t;
%Request1
figure(1);
plot3(x1,y1,z1);
title('x=cost ; y=sint; z=t','FontSize',12);%Request2
t = 0:pi/50:2*pi;
x2 = (2+cos(t./2)).*cos(t);
y2 = (2+cos(t./2)).*sin(t);
z2 = sin(t./2);
figure(2);
plot3(x2,y2,z2);
title({'$x=(2+cos\frac{t}{2})cost$', '$y=(2+cos\frac{t}{2})sint,0\leq t \leq 2\pi$', '$z=sin\frac{t}{2}$'},'interpreter','latex');

运行截图:

在这里插入图片描述
在这里插入图片描述

9.用mesh和surf函数,绘制方程 z = x 2 10 + y 2 10 z=\frac{x^2}{10}+\frac{y^2}{10} z=10x2+10y2 z = − x 2 10 + y 2 10 z=-\frac{x^2}{10}+\frac{y^2}{10} z=10x2+10y2所表示的三维空间曲面,x和y的取值范围设为[-3,3]。

程序:

clear;
x = -3:1/10:3;
y = -3:1/10:3;
[x,y] = meshgrid(x,y);
z1 = (x.*x)/10 + (y.*y)/10;
z2 = -(x.*x)/10 + (y.*y)/10;figure(1);
subplot(1,2,1);
mesh(x,y,z1);
subplot(1,2,2);
surf(x,y,z1);
sgtitle('$z=\frac{x^2}{10}+\frac{y^2}{10}$','Interpreter','latex');figure(2);
subplot(1,2,1);
mesh(x,y,z2);
subplot(1,2,2);
surf(x,y,z2);
sgtitle('$z=-\frac{x^2}{10}+\frac{y^2}{10}$','Interpreter','latex');

运行截图:

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 4千6历年高考英语试题大全ACCESS\EXCEL数据库
  • strncpy陷阱
  • 运维问题0002:SAP多模块问题-SAP系统程序在执行时,跳出“加急快件”窗口,提示:快件文档“更新已终止”从作者***收到
  • SonicWall SSL VPN曝出高危漏洞,可能导致防火墙崩溃
  • 如何修复软件中的BUG
  • 第四章 类和对象 课后训练(1)
  • 数据看板多端查看无压力,教你轻松设置响应式布局
  • Dockerfile中的RUN、CMD、ENTRYPOINT指令区别
  • PCL-统计滤波
  • 十、组合模式
  • 计算机毕业设计选题推荐-自驾游攻略管理系统-Java/Python项目实战
  • 让PPT动起来:用python-pptx轻松添加动画效果
  • TwinCAT3 实时核中ADS实现C++ server、clinet数据传输
  • 车载以太网之SOME/IP
  • 【达梦数据库】误删数据库目录问题复现解决方式
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Date型的使用
  • Git 使用集
  • MySQL的数据类型
  • PAT A1092
  • Python爬虫--- 1.3 BS4库的解析器
  • 创建一个Struts2项目maven 方式
  • 好的网址,关于.net 4.0 ,vs 2010
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 力扣(LeetCode)56
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 第二十章:异步和文件I/O.(二十三)
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 移动端高清、多屏适配方案
  • ​第20课 在Android Native开发中加入新的C++类
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • #DBA杂记1
  • (3) cmake编译多个cpp文件
  • (LeetCode 49)Anagrams
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (九)信息融合方式简介
  • (四)js前端开发中设计模式之工厂方法模式
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)shell调试方法
  • .NET WPF 抖动动画
  • 。。。。。
  • @Documented注解的作用
  • @WebServiceClient注解,wsdlLocation 可配置
  • [2016.7.Test1] T1 三进制异或
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • [Android]How to use FFmpeg to decode Android f...
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C++]多态
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [cogs2652]秘术「天文密葬法」
  • [FC][常见Mapper IRQ研究]
  • [HZNUCTF 2023 preliminary]ppppop
  • [InnoDB系列] -- SHOW INNODB STATUS 探秘