首页 > 解决方案 > 使用 MATLAB 求解方程

问题描述

我有一个我无法理解的在线问题。

问题是:

创建一个脚本,要求用户使用以下等式创建一个随机数: 问题

  1. 绘制x(t)自定义图形黄色和红色以及虚线。
  2. 用符号解方程并微分。

我试图解决它如下:

clc; clear all; 

syms x;
Xt = int(100*rand*sin(x),-100,100); 
plot(Xt);   % The first question 
Y = solve(100*rand*sin(x)); 
Y2 = diff(Xt,x);

我面临的问题是XtY并且Y2都是零。我是否正确理解了这个问题?如何解决?

标签: matlabplotsymbolic-mathintegraldifferentiation

解决方案


可能,可以绘制关于 的函数x。有点担心,因为该函数被调用X(t)。似乎它应该相对于t或某种时间变量发生变化。可以通过添加颜色的简写和线条类型来配置颜色和线条属性,在这种情况下,我使用了一条红色虚线,如线条中r--所示fplot()。在此示例中,我还使用hold on了添加黄色下划线。如果需要图形背景颜色为黄色添加set(gcf,'color','y');配置当前图形,gcf. 不太确定哪些部分或地块需要黄色。使用fplot()函数可能是一个有用的方法。此函数可以选择采用第二个参数,该参数是一个描述水平/x 轴边界/范围的数组,以绘制函数。另请注意,它rand只会计算为 0 到 1 范围内的双精度数。

集成和派生函数图

clear;
clc; 
clf;

syms x;

Xt = int(100*rand*sin(x)); 
Lower_Bound = -100;
Upper_Bound = 100;

subplot(2,1,1); fplot(Xt,[Lower_Bound Upper_Bound],'y');  
hold on
subplot(2,1,1); fplot(Xt,[Lower_Bound Upper_Bound],'r--'); 
title("Plot of X(t)");
xlabel("x"); ylabel("Amplitude");
hold off

Solution = int(100*rand*sin(x),Lower_Bound,Upper_Bound); 
Solution

Y2 = diff(Xt,x);

subplot(2,1,2); fplot(Y2,[Lower_Bound Upper_Bound])
title("Differentiation of X(t) -> Y(t)");
xlabel("x"); ylabel("Amplitude");

使用 MATLAB R2019b 运行


推荐阅读