matlab中 s=[] c=sint s=[s,c] 这段函数是啥意思
function z=lkfun(x,y) %f(x,y)部分,可以根据具体的函数修改
z=-0.9*y/(1+2*x);
%求解函数
%四阶龙格库塔常微分方程数值解MATLAB编程
function [y,x]=LK(a,b,y0,N)
%a,b表示数值解的区间
%y0表示初始值
%N表示解的空间密度
x=linspace(a,b,N); %待解x值
h=(b-a)/(N-1); %分成N-1个区间
y=zeros(1,N); %定义长度
y(1)=y0; %初始值
%具体的迭代过程
for i=1:N-1
k1=lkfun(x(i),y(i));
k2=lkfun(x(i)+h/2,y(i)+h*k1/2);
k3=lkfun(x(i)+h/2,y(i)+h*k2/2);
k4=lkfun(x(i)+h,y(i)+h*k3);
y(i+1)=y(i)+h/6*(k1+2*k2+2*k3+k4);
end
disp('常微分方程的数值解:')
disp([x;y])
实例验证 lk(0,1,1,6); %调用已编写的龙格库塔函数LK
常微分方程的数值解:
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6099
dsolve('Dy=-0.9*y/(1+2*t)','y(0)=1') %matlab自带求解函数dsolve,进行验证
ans =1/(2*t+1)^(9/20)
t=[0:0.2:1];
1./((2*t+1).^(9/20))
ans =
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6100
%发现误差非常小
这是以前写的一个四阶的,自己修改一下应该可以用的
绝对值函数:abs()
则有res = abs( sin( sin( t ) ) )
即把sint加在s的最后,运行一下,看一下s的三次结果就知道了。
clc; clear;
s=[];
sint = [2 3 4];
c = sint;
s = [s,c]
s = [s,5]
s = [s,c]
输出:
s =
2 3 4
s =
2 3 4 5
s =
2 3 4 5 2 3 4
娄陈小儿: 在matlab中s=[ ]、s(1)=1、u=s(1)的意思分别是: 1、s=[ ]——将空矩阵赋值给变量s; 2、s(1)=1——将1分配给向量变量s的储存位置为第一行第一列中; 3、u=s(1)——将s(1)的数值赋值给变量u.
锦屏县13040251154: matlab中s函数怎么写 - ?
娄陈小儿: 所谓s函数是system Function的简称,用s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c++等语言写的s函数还可以实现对硬件端口的操作, 还可以操作windows API等.先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段: 一个为初始化,这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、 采样时间等;第二个阶段就是运行阶段,这个阶段里要进行计算输出、更新离散状态、 计算连续状态等等,这个阶段需要反复运行,直至结束.可以使用模板文件:sfuntmp1.m来写s函数
锦屏县13040251154: 怎么在matlab中将s函数输入 - ?
娄陈小儿: matlab中s函数编写s函数是system Function的简称,用它来写自己的simulink模块.(够简单吧,^_^,详细的概念介绍大伙看帮助吧)可以用matlab、C、C++、 Fortran、Ada等语言来写,这儿我只介绍怎样用matlab语言来写吧(主要是它比...
锦屏县13040251154: matlab中s=[s,a]表示什么 - ?
娄陈小儿: 将s矩阵、a矩阵合并然后赋值给s.s=[1,2,3;4,5,6]; a=[4,5,6;7,8,9]; s=[s,a] 结果如下
锦屏县13040251154: MATLAB中s=csapi(x,y)是什么意思 - ?
娄陈小儿: matlab中的csapi函数是指三次样条插值函数.其使用格式:pp=csapi(x,y) %三次样条插值函数pp结构体,x,y是向量组,例如 values = csapi(x,y,xx) %即返回x x指定位置处的插值三次样条曲线的值.
锦屏县13040251154: MATLAB中如何实现s(n)=∑cos(n)这一序列,n=0:255 - ?
娄陈小儿: clc clear all s=[]; s(1)=cos(0); for n=1:255x(n)=cos(n);s(n+1)=s(n)+x(n); end s注意,matlab里面没有索引0,所以结果为s(1)到s(256)
锦屏县13040251154: 如何提取字符串中的数字 matlab - ?
娄陈小儿: 用正则表达式匹配吧: >> s = '[数字一12000] [数字二28000]'s =[数字一12000] [数字二28000]>> ms = regexp( s, '(?<=\w+)\d+', 'match' )ms ='12000' '28000'然后将字符串转换为数字: >> num1 = str2num( ms{ 1 } )num1 =12000
锦屏县13040251154: simulink中的s函数 - ?
娄陈小儿: S-函数是系统函数(System Function)的简称,是指采用非图形化的方式(即计算机语言,区别于Simulink的系统模块)描述的一个功能块.用户可以采用MATLAB代码,C,C++,FORTRAM或Ada等语言编写S-函数.S-函数由一种特定的语法构...
锦屏县13040251154: 在MATLAB中S函数怎么生成??
娄陈小儿: 在matlab的simulink中有一个S-Function Builder的模块,其中可以用matlab语言或者C语言编写程序,不知道是不是你说的东西.
锦屏县13040251154: s{1}在matlab中是一个矩阵吗 - ?
娄陈小儿: 你这种格式说明s是一个元胞数组,你只取s的第一个元素,如果第一个元素放的是矩阵,那么就是矩阵,如果是字符,那就是字符.比如我建立一个原胞数组:s = { [1,2,3], 'Hello' } 则s{1}就是矩阵[1,2,3],s{2}就是字符串Hello 也就是说要看你具体在s中存什么东西了.谢谢!