matlab var模型中var(a,0,2)

matlab中Funval(f,var,x)如何定义_百度知道
matlab中Funval(f,var,x)如何定义
%初始搜索点:
%线性无关的初始向量组: P;
%自变量向量: var
%精度:
%目标函数取最小值时的自变量值:
%目标函数的最小值:
if nargin==3
eps=1.0e-6;endn=length(var)+1;
while 1
y=zeros(size(P));y(:,1)=x0;for i=1:n-1 %在每个搜索方向上进行一维搜索
yv=y(:,i)+l*P(:,i);
fy=Funval(f,var,yv);
[a,b]=minJT(fy,0,0.1);
tl=minHJ(fy,a,b);
y(:,i+1)=y(:,i)+tl*P(:,i);endP(:,n)=y(:,n)-y(:,1);
if norm((P(:,n))&=eps) %精度判断x=y(:,n);elsefor j=1:nFY(j)=Funval(f,var,y(:,j));endmaxDF=-m=0;for j=1:n-1 %求出算法中对应的m
df=FY(j)-FY(j+1);
if df&maxDFmaxDF=m=j+1;endendtmpF=Funval(f,var,2*y(:,n)-y(:,1));
fl=FY(1)-2*FY(n)+tmpF;
if fl&2*maxDF
yv=y(:,n)+l*P(:,n);
fy=Funval(f,var,yv);
[a,b]=minJT(fy,0,0.1);
tl=minHJ(fy,a,b);
x0=y(:,n)+tl*P(:,n);
P(:,m:(n-1))=P(:,(m+1):n); %重新设置搜索方向elsex0=y(:,n);endendendminf=Funval(f,var,x);
powell方法解决无约束最优化问题
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁matlab 中var(a,0,2)中0是什么意思_百度知道
matlab 中var(a,0,2)中0是什么意思
&gt。示例如下;&gt:1;&gt、打开matlab,在命令窗口输入示例数组&gt、判断a的第1个元素是否不等于0; a = -1。解析,所以结果为真,结果就为真(true); a(1)~=0因为a的第1个元素等于-1,满足不等于0的条件matlab中 a(i)~=0 表示: &gt,显示结果为13、判断a的第2个元素是否不等于0:a(i)表示数组a中的第i个元素,所以结果为假; a(2)~=0因为a的第2个元素等于0,matlab中~表示非:判断数组a的第i个元素是否不等于0,否则就为假(false),不满足不等于0的条件,~=表示不等于(≠):32;&gt,如果不等于0
来自团队:
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Matlab编程与应用习题和一些参考答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Matlab编程与应用习题和一些参考答案
上传于||文档简介
&&里​面​的​题​目​很​经​典​,​并​附​有​答​案​。​可​以​当​做​作​业​的​参​考​。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
你可能喜欢solve_百度百科
在MATLAB中,solve函数主要是用来求解代数方程(多项式方程)的符号解析解。也能解一些简单其他方程的数值解,不过对于解其他方程的能力很弱,此时求出的解往往是不精确或不完整的。注意可能得到的只是部分的结果,并不是全部解。
solveMatlab中的用法
solve(eq, var)
solve(eq1, eq2, ..., eqn)
g = solve(eq1, eq2, ..., eqn, var1, var2, ..., varn)
其中,eq代表一个符号或字符串,var代表一个变量名称
详细的解释:
g=solve(eq)
函数求代数方程的符号解析解。参量eq表示符号表达式或字符串。若eq是一符号表达式或一没有等号的字符串,则函数对方程的默认变量求解方程eq=0,默认变量由命令findsym(eq)确定。若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。
g=solve(eq,var)
用法同上,var为指定变量。即对符号表达式或没有等号的字符串eq中指定的变量var求解方程eq(var)=0。
g=solve(eq1,eq2,…,eqn)
函数求代数方程的符号解析解。参量eq1,eq2,…,eqn表示符号表达式或字符串。函数对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解。若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结果给相应的变量。
g=solve(eq1,eq2,…,eqn,var1,var2,…,varn)
用法同上,var1,var2,…,varn为指定变量,即对方程组eq1,eq2,…,eqn中指定的n个变量var1,var2,…,varn求解。
g= solve(eqn1,...,eqn,,var1,...,varn,Name,Value)
用法同上,Name和Value用来对解方程做一些更高级的控制。不填时,按默认值求解。若要控制多个Name对应的Value值,没有顺序要求。Name和Value的选项如下。Name
'ReturnConditions'默认为false,当为true时额外提供两个参数。
Example: [v1, v2, params, conditions] = solve(sin(x) +y == 0,y^2 == 3,'ReturnConditions',true)
'IgnoreAnalyticConstraints'
默认为false,当为true时会先对原方程进行一些化简操作后再解,以得到较为精简的结果,这也有可能使一些原本用solve解不出来的方程可以得到解。但置为true时也有可能使解不完整或产生错误
'IgnoreProperties'
默认为false,当为true时求解时会忽略变量定义时的一些假设,比如假设变量为正(syms x positive)
'MaxDegree'
默认为3,当复杂多项式方程的阶数高于'MaxDegree'时,solve可能只给出隐式解,调整该项可以让solve给出一些更高阶代数方程的显性解。注意该项最大为4(在数学上更高阶的多项式方程往往很少有解析解)
'PrincipalValue'
默认为false,为true时只给出一个主要的解
'Real'
默认为false,为true时只给出实数解
解单个方程
solve('a*x^2 + b*x + c')结果:
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)如果以x为变量:
solve('a*x^2 + b*x + c','b')结果:
-(a*x^2 + c)/x
S = solve('x + y = 1','x - 11*y = 5');
S = [S.x S.y]结果:
S =[ 4/3, -1/3]
解简单的超越方程对于一些简单的超越方程,solve可以自动调用数值计算系统给出一个解,但可能不是完整的解。
solve(sin(x) == x^2 - 1)
以上方程没有解析解,故求解器自动调用数值计算系统试图寻找数值解。但要想在整个定义域内寻根将要花费大量时间和资源,故solve只找出一个解。
结果:  
如果对这个该函数画图后会发现其实这个方程是有两个解的。
ezplot(sin(x), -2, 2)
ezplot(x^2 - 1, -2, 2)
为求出另一个根可以调用MuPAD的数值求解器,并
指明求解区间,或者用fsolve等其他方法数值求解,
下面用evalin函数调用MuPAD求解另一个在0~2之间的根
evalin(symengine, 'numeric::solve(sin(x) = x^2 - 1, x = 0..2)')
结果:  
高级控制的例子syms x
solve(x^5 == 3125, x)
这样就得到复数域上的5个解,结果:
(5*5^(1/2))/4 + (2^(1/2)*(5^(1/2) + 5)^(1/2)*5*i)/4 - 5/4
(5*5^(1/2))/4 - (2^(1/2)*(5^(1/2) + 5)^(1/2)*5*i)/4 - 5/4
(2^(1/2)*(5 - 5^(1/2))^(1/2)*5*i)/4 - (5*5^(1/2))/4 - 5/4
- (2^(1/2)*(5 - 5^(1/2))^(1/2)*5*i)/4 - (5*5^(1/2))/4 - 5/4
如果只想要实数域上的解,那么在Name和Value的地方加上:
solve(x^5 == 3125, x, 'Real', true)
注意1 solve解非代数方程的能力较弱,最好结合其他方式求解非代数方程
2 如果解得是一个方程组,而且采用了形如[a,b]=solve(a+b==1, 2*a-b==4,a,b) 的格式,那么,在MATLAB R2014a中没问题,可以保证输出的a,b就等于相应的解,但是在R2012b等早先版本中不能保证输出的顺序就是你声明变量时的顺序。所以最好采用g=solve(a+b==1, 2*a-b==4,a,b)这种单输出格式,这样输出的是一个结构体,g.a和g.b就是对应的解。
solveMuPAD中的solve
MuPAD是MATLAB现在的符号计算引擎(以前为maple),也可以单独使用,单独使用时语法有所不同。
solve(eq, x, &Options&) 单个方程,指定变量
solve(eq, x = a .. b, &Options&) 单个方程,指定区间
solve(eq, vars, &Options&) 方程组
solve(eq, &Options&)
solve(system, x, &Options&)
solve(system, vars, &Options&)
solve(system, &Options&)
solve(ODE)
solve(REC)
解多项式方程
解多项式方程
solve(x^7 + x^2 + x, x)
solve({x + y + z = 3, x + y = 2}, {x, y, z}) 或 solve({x + y + z = 3, x + y = 2}, [x, y, z]) {[x = 2 - z1, y = z1, z = 1]} 方程组可以用前面介绍的集合,序列的方式混合 也即{ }和[ ]交叉使用
代数符号方程 S := solve(a*x^2 + b*x + c, x)
solve解差分方程
R:=rec(eq, y(n), &cond&);solve(R)
方程或表达式
初始值或边界集合
解差分方程
由此可见,Rec主要是返回多项式的结果,对于复杂问题,有直接法,for多重循环,滤波器法,Z变换法。
solve解常微分方程
ode::solve(o, &Type = OdeType&, &Opts&)solve(o, &Type = OdeType&, &Opts&)
o: 常微分方程
Type = OdeType 方程类型Abel, Bernoulli, Chini, Clairaut, ExactFirstOrder, ExactSecondOrder, Homogeneous, Lagrange, Riccati.
Opts 与解法有关选项
例子o:= ode(y'(x) = y(x)^2, y(x));solve(o)o:= ode({y'(x) = a*y(x)^2, y(a) = ln(a)}, y(x)):solve(o)
解常微分方程
Mathematica中Solve的用法
调用方法:Solve[expr,vars]
例:Solve[x^2 + a x + 1 == 0, x]
企业信用信息matlab语句 a=[1,-0.8]; b=[0,0.6]; par0=[a(2:1+1),b(2:1+1)]' 最后一句中加号的用法是?_百度知道
matlab语句 a=[1,-0.8]; b=[0,0.6]; par0=[a(2:1+1),b(2:1+1)]' 最后一句中加号的用法是?
我有更好的答案
-0+就是 矩阵或向量的对应元素加 或 每个元素 加一个标量,0,b(2.6]:a=[1:(1+1)):(1+1))]&#39。这里等价于; par0=[a(2; b=[0.8]
但是运行结果是-0.8
0.6并没有体现“加1”啊
2:(1+1)即2:2 即2你的意思是:(2:1)+1吗?这是空矩阵!
与par0=[a(2:2),b(2:2)]' 相同,与par0=[a(2),b(2)]' 相同.
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 matlab var std 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信