matlab高深程序问题

matlab高深程序问题,第1张

if cmp == 1 缺少end

for i =2:181缺少end

y=L1*cos(th1)+ L2*sqrt(1-(L3*sin(x)- L1*sin(th1)^2/L2/L2))- L3*cos(x)- L0缺少半个小括号

%层次分析法的matlab程序

1、disp('请输入判断矩阵A(n阶)')

A=input('A=')

[n,n]=size(A)

x=ones(n,100)

y=ones(n,100)

m=zeros(1,100)

m(1)=max(x(:,1))

y(:,1)=x(:,1)

x(:,2)=A*y(:,1)

m(2)=max(x(:,2))

y(:,2)=x(:,2)/m(2)

p=0.0001i=2k=abs(m(2)-m(1))

while k>p

i=i+1

x(:,i)=A*y(:,i-1)

m(i)=max(x(:,i))

y(:,i)=x(:,i)/m(i)

k=abs(m(i)-m(i-1))

disp('权向量')disp(w)

disp('最大特征值')disp(t)

2、y(:,i)=x(:,i)/m(i)

k=abs(m(i)-m(i-1))

end

a=sum(y(:,i))

w=y(:,i)/a

t=m(i)

disp('权向量')disp(w)

disp('最大特征值')disp(t)

%以下是一致性检验

扩展资料:

Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

参考资料来源:百度百科-MATLAB

常微分(ODE)方程的数值求解器有:非刚性求解器(计算的精度从低到高)ode23,ode45,ode113,刚性方程求解器(适用的刚性从弱到强) ode15s,ode23s,ode23t,ode23tb,隐方程求解器ode15i

所谓刚性方程,就是指它的解的曲线有剧烈的或缓慢的变化。如van der Pol方程(教材p144例4)就是一个刚性方程.

Ode求解器默认的相对误差是1e-3,绝对误差是1e-6,要改变默认的精度设置,可以用odeset来设定Options。具体设置方法,求助于help功能。Ode求解器中可以求解带有参数的微分方程。

常用的精度设置如

Options=odeset(‘RelTol’, 1e-5,’AbsTol’, [1e-8, 1e-7])

其中绝对误差可以对每个未知函数的分量分别规定,写成一个向量,维数等于方程的维数。如对各分量的绝对误差设置相同则只须写一个标量误差。

每一积分步第i个分量的误差满足e(i) <= max(RelTol*abs(y(i)),AbsTol(i)).

如果只要对解的范数作误差控制,而不需对解的每个分量作误差控制,则在Options中可以加上选项’NormControl’, ‘on’. 这时每一积分步误差的范数满足norm(e) <= max(RelTol*norm(y),AbsTol). 这个选项对那些解的范数会等于零的方程特别有用,不用此选项时,为了要达到苛刻的误差要求,步长会取得很小,将大大减慢求解过程以致求解失败.

时滞是常数的时滞常微分方程DDE的数值求解器有dde23,要改变默认的设置,可以用ddeset来设定。

常微分方程求解器的options还可以设置一个有用的功能,语法是

Options=odeset( 'Events',@EVENTS)(Options可以是自定义名,其中各种设置如精度设置可以写在一起,用逗号分开),用ode45求解时,可用格式

[TOUT,YOUT,TE,YE,IE] = ode45(@ODEFUN,TSPAN,Y0,Options, P)

在odeset中设置了一个事件函数@EVENTS,是自编m函数,函数名自定。函数的格式是

[VALUE,ISTERMINAL,DIRECTION] = EVENTS(T,Y,P).

事件函数的输入是和微分方程的函数输入相同,顺序相同. 事件函数的输出是3个列向量. 例如 [VALUE,ISTERMINAL,DIRECTION],名称自定,列向量的维数是事件的个数,VALUE(I) 是事件函数的第I个分量表达式的值, ISTERMINAL(I)=1表示事件函数的第I个分量的值等于零时积分终止,不然等于0 , DIRECTION(I)=0 表示要计算事件函数的第I个分量的所有的零点 (默认), +1 仅计算事件函数第I个分量在零点递增的零点 -1仅计算事件函数的第I个分量在零点递减的零点.

TSPAN是微分方程求解区间,例如可用 [0 pi]表示,也可以指定TOUT为求解区间中的一些点列,如TSPAN=0: 0.1: 3.2 Y0是微分方程初值问题中的初值,如Y0=[0 0];

TOUT是微分方程求解区间TSPAN中的时间点列,YOUT是时间点列TOUT上方程解的值,是矩阵形式,列数等于方程的维数,TOUT(:,J)是解的第J个分量在时间点列TOUT上的向量值。 TE是列向量,是事件发生的时刻序列. YE的各行向量是事件发生各时刻方程的解的向量值, IE表示在TE时刻发生的事件在事件函数中的序号.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7953562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存