MATLAB怎么解方程解,怎么用MATLAB求解微分方程组并画出解函数图?
!using["XSLSF"]; //使用命名空间XSLSF
//数组xArray存放x的值;ti为当前有效值的个数;tmax为ti对应的时间;tmin为起始时间。
xt(t:k:xArray,ti,tmax,tmin)=
{
k=(t-tmin)/(tmax-tmin)*ti-1,
if[k<0, k=0], if[k>=ti, k=ti-1],
xArray.getrai[k]
};
//数组yArray存放y的值;ti为当前有效值的个数;tmax为ti对应的时间;tmin为起始时间。
yt(t:k:yArray,ti,tmax,tmin)=
{
k=(t-tmin)/(tmax-tmin)*ti-1,
if[k<0, k=0], if[k>=ti, k=ti-1],
yArray.getrai[k]
};
//函数定义,用于计算微分方程组中各方程右端函数值,连分式法对微分方程组积分一步函数pbs1将调用该函数f。
//t为自变量,x,y为函数值,dx,dy为右端函数值(即微分方程的值)。
f(t,x,y,dx,dy)=
{
dx=-(x^3)-y,
dy=x-y^3
};
//用连分式法对微分方程组进行积分,获得理论值。
//t1,t2为积分的起点和终点。
//h,s为自动变量。
//模块变量:hf为函数f的句柄,要预先获得该句柄;Array为工作数组;step为积分步长;eps为积分精度。
积分(t1,t2:h,s:hf,Array,step,eps)=
{
s=ceil[(t2-t1)/step], //计算积分步数
h=(t2-t1)/s, //重新计算积分步长
{ pbs1[hf,t1,Array,h,eps], //对微分方程组积分一步
t1=t1+h //积分步长增加
}.until[abs(t1-t2)
};
数据(:i,h,t1,t2,x,y,static,free:hf,Array,step,eps,max,xArray,yArray,ti,tmax,tmin)= //微分方程组积分获得数据
{
if[free,delete(Array),delete(xArray),delete(yArray),return(0)],
hf=HFor("f"), //模块变量hf保存函数f的句柄,预先用函数HFor获得该句柄
step=0.01,eps=1e-6, //积分步长step要合适,积分精度eps越小越精确,用于对微分方程组积分一步函数pbs1
Array=new[rtoi(real_s),rtoi(2*15)], //申请工作数组
max=1001,
xArray=new[rtoi(real_s),rtoi(max)], //申请工作数组
yArray=new[rtoi(real_s),rtoi(max)], //申请工作数组
Array.setra(0,1,0.5), //设置积分初值,通过模块变量Array传递,Array是一个数组
xArray.setra(0,1), //设置xArray的第一个值
yArray.setra(0,0.5), //设置yArray的第一个值
ti=1, h=step*3, tmin=0, tmax=0, t1=0, t2=h,
i=1,(i
积分(&t1,t2), //从t1积分到t2
Array.getra(0,&x,&y), //从数组Array获得t2时的积分值
xArray.setra(i,x), yArray.setra(i,y), //将积分值保存到数组
ti=i+1, tmax=t1, t2=t2+h,
i++
}
};
//绘制函数图形
(::hxt,hyt)= hxt=HFor("xt"), hyt=HFor("yt"); //获得函数xt和yt的句柄,保存在模块变量中
gleDrawScene[HFor("Scene")],stop(); //设置场景绘制函数后退出
Scene(::hxt,hyt,tmax,tmin)=
{
glClear[], //清除屏幕以及深度缓存
glLoadIdentity[], //重置视图
glTranslated[0,0,-20], //移动坐标,向屏幕里移动10个单元
glColor3d[0,0,1], //设置颜色
fgPlot[hxt,tmin,tmax,FG_Y,-1,2], //绘制一元函数图象
glColor3d[1,0,0], //设置颜色
fgPlot[hyt,tmin,tmax,FG_Y,-1,2] //绘制一元函数图象
};
MATLAB怎么解方程解,怎么用MATLAB求解微分方程组并画出解函数图?相关推荐
- matlab解二阶微分方程组,[微分方程组]急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计!...
急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计! 问题补充:今天才发现自己之前做的一点都不对,17号就交论文了,我傻了,急死了!求各位大侠帮帮忙.谢谢!要求解的微分方程如图所示. ...
- 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...
MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...
- Matlab求解微分方程组
我们采用ode方法: (1)求解普通微分方程组:使用ode45方法 1. 创建一个函数文件eq2.m,在函数文件中描述这个解的微分方程组: %eq2.m文件 %描述微分方程组function dy=e ...
- matlab系统函数伯德图,利用matlab画出根轨迹图|伯德图bode
求G(s)=K/s(s+1)(s+3)的根轨迹图形 若开环传递函数不是多项式乘积形式,则不需用conv函数,conv函数可用于多项式乘法以及卷积. num=[1,];%分子上的各项系数 %K=[1:1 ...
- matlab:使用4阶龙格库塔方法求微分方程组的值
参考书目:<数值分析(matlab版)> 作者:周璐 翻译 %调用龙格库塔方法求解微分方程组,P399,9.7 微分方程组 function [t,z] = my_rk4b(f, t0, ...
- 写一个判断方程根的C语言程序,写出求方程ax2+bx+c=0的根的算法,画出相应的程序框图,并要求输出它的实根....
写出求方程ax2+bx+c=0的根的算法,画出相应的程序框图,并要求输出它的实根. 答案 思路分析:主要考查含参问题的讨论方法及条件嵌套结构的应用.输入三个实数a,b,c,先判断a是否为零,当a≠0时 ...
- matlab解方程最值点,MATLAB解方程与函数极值
1.线性方程数值求解 主要是用到了计算方法里的LU分解等不过是加快了求解速度而已相对于inv(A)*b或者A\b 2.非线性方程数值求解 1 单变量非线性方程求解 在MATLAB中提供了一个fzero ...
- matlab解方程x 2-x-2=0,matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0...
问题描述: matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0 1个回答 分类: 数学 2014-11-28 问题解答: 我来补答 ...
- matlab解二阶微分方程组ode,MATLAB解含参数方程、矩阵方程、二阶微分方程组
1.如下公式: 其中x.y.m.n为参数,a.b为未知数,利用MATLAB求解方程: syms x y m n a b; [a,b]=solve('x=m*cos(a)+n*cos(a+b)','y= ...
最新文章
- Altium Designer同一个工程里不同原理图导入到不同的PCB
- [新手学Go]GO语言闭包的使用
- SQL 2014 in-memory中的storage部分
- 中文分词器分词效果的评测方法
- 夺命雷公狗---ECSHOP---08---商品页的拇改成星星
- Python3 —— 列表
- linux强制删除后登录不了,【已解决】更新之后无法登录
- 情怀无价!诺基亚225 4G正式开售:320元
- jQuery给页面弹出层添加半透明背景
- iOS 自定义底部tabbar加号按钮实现方法
- wampserver修改默认根目录
- 明解c语言答案第八章,明解C语言 入门篇 第八章答案
- 使用QPainter绘制饼状图,并显示所占百分比
- android修改shell串口号,[Note] 2021-01-15 Android shell/串口中使用 wpa_cli 连接Wi-Fi
- 【Unity好项目分享】如何制作如游戏蔚蓝般极佳的操作手感
- MATLAB中矩阵求和的方法
- 淳于髡(约前386年—前310年)
- mysql安装无效安装源_(0.2.4)Mysql安装——yum源安装
- 如何修改PDF并调整页面尺寸大小
- Java自定义导出列_后台生成EXCEL文档,自定义列