太原网站如何制作,网站怎么做动效,哪个网站可以做免费请帖,网站备案前置审批文件一、背景
毕达哥拉斯的“万物皆数”哲学观点表达了一个理念#xff0c;即宇宙万物都可以通过数学语言来描述#xff0c;数是万物的本原。 勾股定理就是毕达哥拉斯提出#xff0c;因此在西方勾股定理也被叫做毕达哥拉斯定理。
工科类的专业#xff0c;越到后面越感觉到数学…一、背景
毕达哥拉斯的“万物皆数”哲学观点表达了一个理念即宇宙万物都可以通过数学语言来描述数是万物的本原。 勾股定理就是毕达哥拉斯提出因此在西方勾股定理也被叫做毕达哥拉斯定理。
工科类的专业越到后面越感觉到数学的重要性无论是控制计算机还是机器人专业都需要很好的数学功底。
最近在做DMP相关的内容时需要求解二阶微分方程无奈早已把学的还给老师可惜当时高数白考九十多分。但很感谢当时的高数老师于朝霞教授讲课讲的真好所以重新翻看高等数学第六版同济大学编著的微分方程章节时很快捡起来之前学到的内容。
现在有了matlab不需要自己手算了下面记录一下使用matlab求解二阶微分方程的过程。
Matlab版本2023a
二、Matlab求解二阶常系数微分方程
1、问题描述
二阶常系数微分方程 y ¨ 10 y ˙ 25 y 250 (1) \begin{aligned} \ddot y10\dot y25y250 \\ \end{aligned}\tag{1} y¨10y˙25y250(1) 二阶微分方程如果没有初始条件其通解会含有两个任意常数所以不能完全反应某一客观实物的规律。 这里设置初始条件为 y ( 0 ) 15 , y ˙ ( 0 ) 0 (2) \begin{aligned} y(0)15, \dot y(0)0 \\ \end{aligned}\tag{2} y(0)15,y˙(0)0(2)
2、matlab求解微分方程并绘制解的曲线
clear; close all; clc;
% 定义符号变量
syms x y(x);% 定义二阶微分方程
eqn diff(y, x, 2) 10*diff(y, x) 25*y 250;% 设置初始条件
initial_condition1 y(0) 0; % 初始值 y(0) 0
initial_condition2 subs(diff(y), 0) 0; % 初始导数值 y(0) 0% 求解微分方程
sol dsolve(eqn, [initial_condition1, initial_condition2]);% 显示解
disp(解:);
disp(sol);% 将解转换为函数句柄
ySol matlabFunction(sol);% 定义 x 范围
x linspace(0, 5, 100); % 这里的范围可以根据需要调整% 计算对应的 y 值
y ySol(x);% 绘制曲线图
figure;
a1 subplot( 1, 1, 1 );
hold( a1, on );
plot(a1, x, y, linewidth, 3, color, [0.0000, 0.4470, 0.7410] );
xlabel(x);
ylabel(y);
title(二阶微分方程的解曲线);
scatter( 0, ySol(0), filled, linewidth, 3, markerfacecolor, y, markeredgecolor, k );
grid on; 3、matlab求解加速度函数并绘制解的曲线
经过步骤2其实我们得到的是位置和速度的关系即解为 y − 10 e − 5 x − 50 x e − 5 x 10 (2) \begin{aligned} y-10e^{-5x}-50xe^{-5x}10 \\ \end{aligned}\tag{2} y−10e−5x−50xe−5x10(2)
有时我们还需要观察加速度和时间的关系。 因此对公式2求二阶导得到加速度 y ¨ 250 e − 5 x − 1250 x e − 5 x (2) \begin{aligned} \ddot y250e^{-5x}-1250xe^{-5x} \\ \end{aligned}\tag{2} y¨250e−5x−1250xe−5x(2)
matlab里求解加速度与时间的关系及画出曲线图
clear; close all; clc;
% 定义符号变量
syms x;% 定义函数
y 10 - 50*x*exp(-5*x) - 10*exp(-5*x);% 计算二阶导数
second_derivative diff(y, x, 2);
% 显示解
disp(二阶导:);
disp(second_derivative);
% 将二阶导数转换为函数句柄
second_derivative_func matlabFunction(second_derivative);% 定义 x 范围
x_values linspace(0, 5, 100); % 这里的范围可以根据需要调整% 计算对应的二阶导数值
y_second_derivative second_derivative_func(x_values);% 绘制二阶导数曲线图
figure;
plot(x_values, y_second_derivative);
xlabel(x);
ylabel(y的二阶导数);
title(y5*exp(-5*x) 25*x*exp(-5*x) 10 的二阶导数曲线);
grid on;