matlab程序设计问题,请赐教,越详细越好,谢谢,完整的追加财富

matlab程序设计问题,请赐教,越详细越好,谢谢,完整的追加财富,第1张

第一题:

x=0:001:2pi;

y1=sin(x);

y2=cos(x);

plot(x,y1);

hold on;

plot(x,y2);

hold off

第二题:

将以下代码保存为m文件,文件名为offm

function outputprice = off (price)

if price<200 % 没有折扣

outputprice=price;

else if (price<500) % 3%折扣

outputprice=price(1-003);

else if (price<1000) % 5%折扣

outputprice=price(1-005)

else if (price<2500) % 8%折扣

outputprice=price(1-008);

else if (price<5000) % 10%折扣

outputprice=price(1-010);

else if (price>=5000) % 14%折扣

outputprice=price(1-014);

end

end

end

end

end

end

用法举例:命令行输入off(6000),回车,即可求出6000的折扣后价格。

第三题:

%定义自变量符号x

syms x

%求f(x)

fx=3x^5-x^4+2x^2+x+3;

%求g(x)

gx=1/3x^3+x^2-3x-1;

%求积和商

ji=fxgx;

shang=fx/gx;

%用collect函数化简,输出结果

ji=collect(ji)

shang=collect(shang)

LZ你要是不给分就太对不起我了。

一个简单的程序,进攻参考

for i=1:5

switch i

case 1

disp(' ')

case 2

disp(' ')

case 3

disp(' ')

case 4

disp(' ')

case 5

disp('')

end

end

clc

clear

close all

Tb = 1;

Ns = 10;

fs = Ns/Tb; % 采样频率

A = 2;

t0 = (0:1/fs:Tb-1/fs);

%% 正交信号

s0 = Aones(1,10); % 正交信号s0

s1 = [Aones(1,5) -1Aones(1,5)]; % 正交信号s1

% figure

% subplot(211);

% plot(t0,s0)

% subplot(212);

% plot(t0,s1)

%% 编码

N = 50; % 采样点数

code = [1,-1,1,1,-1]; % 5个code

for kc = 1:5

if code(kc)==1

x(Ns(kc-1)+1:kcNs) = s0;

else

x(Ns(kc-1)+1:kcNs) = s1;

end

end

%% 加噪声

% t = 0:1/fs:1/fsN-1/fs;

Nt = 1:N;

index2 = 10:10:50;

index2 = index2+2;

Nt2 = 1:5;

deta = [0,01,10,20];

for kd=1:4

noise = sqrt(deta(kd))randn(1,N); % 噪声

y = x+noise; % 输出信号

% y=x;

%% 相关

for ks = 1:5

z0(ks) = y(Ns(ks-1)+1:ksNs)s0'/10;

z1(ks) = y(Ns(ks-1)+1:ksNs)s1'/10;

end

% z0 = xcorr(y,s0);

% z1 = xcorr(y,s1);

str0 = ['噪声方差:' num2str(kd),'与s0相关结果'];

str1 = ['噪声方差:' num2str(kd),'与s1相关结果'];

figure

subplot(211);

stem(Nt2,z0)

title(str0)

subplot(212);

stem(Nt2,z1)

title(str1)

end

你可以看看这个,你怎么和之前别人提的问题一样啊

程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。这是所有程序设计的基本原则。

在matlab的command window 的窗口中,输入edit 文件名(文件名一般以字母开头),如下:

>> edit main

再回车,就会在左侧的current folder里面新建一个名为mian的m文件,d出编辑窗口,在编辑窗口输入你要编写的程序即可。

也可以直接点击matlab左上角的新建按钮,新建一个文件,即New script,在里面编写程序,并保存在你指定的位置,这时候也可以修改文件名。

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

解:建模

⑴单位冲激函数@(t)无法直接用MATLAB描述,可以把它看作是宽度为Δ(程序中用dt表示),幅度为

1/Δ的矩形脉冲。

⑵单位阶跃函数:在t=t1处跃升的节约信号可写为u(t-t1)

⑶复指数函数:x3(t)=e^(ut+jwt)若w=0,它是实指数函数,若u=0,则为虚指数函数,其实部为余弦函数,虚部为正弦函数。

MATLAB程序

clear,t0=0;tf=5;dt=005;t1=1;

t=[t0:dt:tf];st=length(t);

% ⑴单位冲激信号

%在t1处有时间连续为dt,面积为1的脉冲信号,其余时间均为零。

n1=floor((t1-t0)/dt);%求t1对应的样本序号

x1=zeros(1,st);% 把全部信号先初始化为零

x1(n1)=1/dt;%给出t1处的脉冲信号

subplot(2,2,1),stairs(t,x1),grid on,title('冲激函数') %绘图

axis([0,5,0,22])

%⑵单位阶跃函数

x2=[zeros(1,n1-1),ones(1,st-n1+1)];

subplot(2,2,3),stairs(t,x2),grid on,title('阶跃函数');

axis([0,5,0,11]);

%⑶复指数函数

alpha=-05;w=10;x3=exp((alpha+jw)t);

subplot(2,2,2),plot(t,real(x3)),grid on,title('复指数函数实部')

subplot(2,2,4),plot(t,imag(x3)),grid on,title('复指数函数虚部')

例62LTI系统的零输入响应

描述n阶线性时不变(LTI)连续系统的微分方程为:

解:建模

当LTI系统的输入为零时,其零输入响应为微分方程的齐次解(即微分方程的等号右边为零),其形式为(设特征根均为单根)

y(t)=c1exp(p1t)+c2exp(p2t)+c3exp(p3t)+…+cnexp(pnt)

其中p1,p2,p3,…,pn是特征方程的根,他们可以用roots(a)语句求的。各系数c1,c2,…,cn由y及其各阶倒数的初值来确定。

MATLAB程序q602m

a=input('输入分母系数向a=[a1,a2,a3,…]=');

n=length(a)-1;

Y0=input('输入初始条件向量Y0=[y0,D1y1,D2y2,D3y3…]=');

p=roots(a);V=rot90(vander(p));c=V\Y0';

dt=input('dt=');tf=input('tf=')

t=0:dt:tf; y=zeros(1,length(t));

for k=1:n y=y+c(k)exp(p(k)t);

disp([' c',' (',num2str(k),') ','is'])

disp(num2str(c(k)))

disp([' p',' (',num2str(k),') ','is'])

disp(num2str(p(k)))

end

plot(t,y),grid

以上就是关于matlab程序设计问题,请赐教,越详细越好,谢谢,完整的追加财富全部的内容,包括:matlab程序设计问题,请赐教,越详细越好,谢谢,完整的追加财富、有关matlab的简单程序设计~、求大神做matlab程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10219348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存