[MATLAB] 初学入门 运用plot()函数绘制函数图像

本文将讲述使用matlab绘制三角函数方程、参数函数方程、分段函数方程及超越函数方程图像的方法。

开门见山,直接来看几道例题。

A. 画出方程y=tan(x)的图像。

clc %清除命令窗口的内容
clear %清除工作空间的所有变量
clear all %清除工作空间的所有变量,函数,和MEX文件
clf %清除当前的Figure
close %关闭当前的Figure窗口
close all %关闭所有的Figure窗口

x=-1.56:0.01:1.56; %定义一个一维数组X,首元素为-1.56,递增量为0.01,末元素为1.56

y=tan(x); %定义一个一维数组Y,其每一个元素为X对应位置的每一个元素的计算值

plot(x,y); %绘制出X,Y的图像,并用光滑曲线连接起来

在这里插入图片描述
B. 画出方程y=sin(1/x)的图像,定义域为[-1,1]。

clc %清除命令窗口的内容
clear %清除工作空间的所有变量
clear all %清除工作空间的所有变量,函数,和MEX文件
clf %清除当前的Figure
close %关闭当前的Figure窗口
close all %关闭所有的Figure窗口

x=-1:0.01:1; %定义一个一维数组X,首元素为-1,递增量为0.01,末元素为1

y=sin(1./x); %定义一个一维数组Y,其每一个元素为X对应位置的每一个元素的计算值

plot(x,y); %绘制出X,Y的图像,并用光滑曲线连接起来

在这里插入图片描述
C. 画出方程{x(t)=cos(t)*cos(5t) & y(t)=sin(t)*cos(3t)}的图像。

clc %清除命令窗口的内容
clear %清除工作空间的所有变量
clear all %清除工作空间的所有变量,函数,和MEX文件
clf %清除当前的Figure
close %关闭当前的Figure窗口
close all %关闭所有的Figure窗口

t=-1:0.01:1; %定义一个一维数组t,首元素为-1,递增量为0.01,末元素为1

x=cos(t).*cos(5.*t); %定义一个一维数组X,其每一个元素为T对应位置的每一个元素的计算值

y=sin(t).*cos(3.*t); %定义一个一维数组Y,其每一个元素为T对应位置的每一个元素的计算值

plot(x,y); %绘制出X,Y的图像,并用光滑曲线连接起来

在这里插入图片描述
D. 画出方程y={1,x>0 & 0,x=0 & -1,x<0}的图像。

clc %清除命令窗口的内容
clear %清除工作空间的所有变量
clear all %清除工作空间的所有变量,函数,和MEX文件
clf %清除当前的Figure
close %关闭当前的Figure窗口
close all %关闭所有的Figure窗口


x=-1:0.01:1; %定义一个一维数组x,首元素为-1,递增量为0.01,末元素为1

y=1.*(x>0)+0.*(x==0)+-1.*(x<0); %定义一个一维数组Y,其每一个元素为X对应区间及对应位置的每一个元素的计算值

plot(x,y); %绘制出X,Y的图像,并用光滑曲线连接起来

在这里插入图片描述
E. 画出方程y=x5+3ex+log2(3-x)的图像,定义域为[-2,2]。

clc %清除命令窗口的内容
clear %清除工作空间的所有变量
clear all %清除工作空间的所有变量,函数,和MEX文件
clf %清除当前的Figure
close %关闭当前的Figure窗口
close all %关闭所有的Figure窗口


x=-2:0.01:2; %定义一个一维数组x,首元素为-2,递增量为0.01,末元素为2

y=x.^5+3.*exp(x)+log2(3.-x); %定义一个一维数组Y,其每一个元素为X对应区间及对应位置的每一个元素的计算值

plot(x,y); %绘制出X,Y的图像,并用光滑曲线连接起来

在这里插入图片描述

  • 33
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个基于遗传算法优化Elman神经网络的MATLAB代码,用于多输入单输出点预测和区间预测,并绘制预测结果的图像。 ``` % Load data load('data.mat'); % Set parameters inputSize = 5; hiddenSize = 10; outputSize = 1; sequenceLength = 15; trainingSize = 200; testingSize = 50; numGenerations = 50; populationSize = 50; crossoverRate = 0.8; mutationRate = 0.02; % Split data into training and testing sets inputsTrain = inputs(:,1:trainingSize); outputsTrain = outputs(:,1:trainingSize); inputsTest = inputs(:,trainingSize+1:trainingSize+testingSize); outputsTest = outputs(:,trainingSize+1:trainingSize+testingSize); % Define fitness function fitnessFunc = @(x) elmanFitness(x, inputsTrain, outputsTrain, inputSize, hiddenSize, outputSize, sequenceLength); % Define GA options gaOptions = gaoptimset('PopulationSize', populationSize, 'Generations', numGenerations, 'CrossoverFraction', crossoverRate, 'MutationRate', mutationRate); % Run GA [bestWeights, bestFitness] = ga(fitnessFunc, inputSize*hiddenSize + hiddenSize*hiddenSize + hiddenSize*outputSize, [], [], [], [], [], [], [], gaOptions); % Train Elman network with best weights net = newelm(inputsTrain, outputsTrain, hiddenSize, sequenceLength, 'tansig', 'trainlm', 'mse'); net.IW{1, 1} = reshape(bestWeights(1:inputSize*hiddenSize), inputSize, hiddenSize); net.LW{2, 1} = reshape(bestWeights(inputSize*hiddenSize+1:inputSize*hiddenSize+hiddenSize*hiddenSize), hiddenSize, hiddenSize); net.LW{3, 2} = reshape(bestWeights(inputSize*hiddenSize+hiddenSize*hiddenSize+1:end), hiddenSize, outputSize); net.trainParam.epochs = 100; net = train(net, inputsTrain, outputsTrain); % Test network outputsPred = sim(net, inputsTest); % Plot results figure; plot(outputsTest, 'b'); hold on; plot(outputsPred, 'r'); legend('Actual', 'Predicted'); xlabel('Time'); ylabel('Value'); title('Elman Network Prediction'); ``` 其中,`elmanFitness`函数用于计算Elman网络的适应度,具体实现如下: ``` function fitness = elmanFitness(weights, inputs, outputs, inputSize, hiddenSize, outputSize, sequenceLength) % Reshape weights into matrices inputWeights = reshape(weights(1:inputSize*hiddenSize), inputSize, hiddenSize); hiddenWeights = reshape(weights(inputSize*hiddenSize+1:inputSize*hiddenSize+hiddenSize*hiddenSize), hiddenSize, hiddenSize); outputWeights = reshape(weights(inputSize*hiddenSize+hiddenSize*hiddenSize+1:end), hiddenSize, outputSize); % Create Elman network net = newelm(inputs, outputs, hiddenSize, sequenceLength, 'tansig', 'trainlm', 'mse'); net.IW{1, 1} = inputWeights; net.LW{2, 1} = hiddenWeights; net.LW{3, 2} = outputWeights; net.trainParam.showWindow = false; % Train network and calculate fitness net = train(net, inputs, outputs); outputsPred = sim(net, inputs); fitness = -sqrt(mean((outputs - outputsPred).^2)); end ``` 该代码使用遗传算法优化Elman网络的权重,使其最小化训练集上的均方误差。然后,使用最佳权重训练Elman网络,并在测试集上进行预测。最后,将实际值和预测值绘制在同一张图上进行比较。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值