www.sxkb.net > mAtlAB定义迭代变量

mAtlAB定义迭代变量

limit函数?那是用来算函数极限的,而且是属于符号计算工具箱,你这是数列极限,不能用.如果非得用,就自己写出通项公式,这样可以做成函数极限的样子. 如果真想用matlab特色的数值解法,就得做for循环.而且不是1:inf,无穷根本就不能达到啊. p1 = 0.8; % 自己取初值p2 = p1;for k = 1:1e5 p1 = 0.8*p2+0.2; if abs(p1-p2)<1e-9 break; end p2 = p1;endfprintf('极限是%f\n',p1);上面借鉴了cauchy收敛条件.

1)for循环那里x=1.4后面应为冒号2)for 少了对应的end3)for循环里x_derivative为sym类型,不能直接运算,需用subs代入数值4)迭代算法需要大改,n没有定义

在matlab中,可通过如下方式给矩阵赋值:a = zeros(3,4); % 初始化一个3*4的矩阵>>a = 0 0 0 00 0 0 00 0 0 0a(1,2) = 5; % 将矩阵a的第1行第2列个元素赋值为5>>a = 0 5 0 00 0 0 00 0 0 0a(2) = 6; % 将矩阵a的第2个元素(按列开始计算)赋值为6>>a = 0 5 0 06 0 0 00 0 0 0a(3,:) = [1 2 3 4]; % 将矩阵a的第3行赋值为[1 2 3 4]>>a = 0 5 0 06 0 0 01 2 3 4

有个定义符号变量的函数楼主可能不知:syms是定义符号变量的函数syms a 之后a就可以直接当做一个变量使用了,而不在乎它的取值,也就是符号变量.当然由此运行的结果肯定会包含a,运算出来的结果也是符号变量.如多个变量需要定义,则可连续定义,空格分开:syms a c

k=input('输入k:');X0=input('输入X0:');X(1)=X0;for i=2:2000X(i)=1-k*X(i-1)^2;%需要输出中间结果去掉分号endX(2000)

a1 = 0:60; a2 = 59:-1:1; a = [a1,a2,a1];

建议看看matlab基础的东西 《MATLAB基本函数讲解》系列视频新鲜出炉啦!http://www.matlabsky.com/thread-9345-1-1.html

load cost是加载数据的意思,Mute_cost 在这段代码里是第一次出现,也就是说,之前一定是定义的了,所以应该是在cost加载的数据里面.你可以运行一下,看看Matlab主界面数据列表里有没有产生Mute_cost这个数据.

因为H最开始已经定义为了double型, 改一下就行了: syms x; H(1)=sym(1);H(2)=3; for i=2:5 H(i+1)=x*H(i)-i*H(i-1); end H=simple(H') % 这是列向量, 好看些.

情况一:符号变量 必须要定义,定义之后才可以使用.如下面的例子,未定义就会出错.符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点.情况二:计算过程当中的存储数值的变量 可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值,并且注释,这样方便以后区分,避免混淆.情况三:矩阵和向量 对于矩阵一般都是需要定义的,定义好矩阵之后,才方便访问/修改矩阵的指定元素,矩阵声明(定义)的方法,常用的 就是声明为零矩阵zeros(M,N),或者单位矩阵ones(M,N),eye(M,N)等.

网站地图

All rights reserved Powered by www.sxkb.net

copyright ©right 2010-2021。
www.sxkb.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com