MATLAB中norm函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中norm函数相关的知识,希望对你有一定的参考价值。
用MATLAB算出来一个矩阵,结果是分数,想对它求范数,用norm函数用不了,怎么办?
谢谢你的回答,但是我是想把d=g1(1,1)^2+g1(2,1)^2直接用norm(g1)求出来,就是d=norm(g1)这种形式,你再帮看下怎么改?谢啦
clc;clear
f=\'4*(m-5)^2+(n-6)^2\';
x0=[1;1];
m=x0(1,1);n=x0(2,1);
fx=diff(f,\'m\');%对x求偏导数
fy=diff(f,\'n\');%对y求偏导数
g=[fx;fy];%梯度
g0=subs(g);%把符号变量转为数值
d0=(-g0);
for k=0:10
syms a ww
x1=x0+a*d0;
m=x1(1,1);n=x1(2,1);
a=solve(diff(subs(f)),\'a\');
x1=subs(x1);
m=x1(1,1);n=x1(2,1);
g1=subs(g);
c=g0(1,1)^2+g0(2,1)^2;
d=g1(1,1)^2+g1(2,1)^2;%这个用NORM求解就不行,为什么,怎么改
norm(eval(d))
b=d/c;
if subs(d)<0.0001
k%输出叠代次数
break;
else
d1=-g1+b*d0;
x0=x1;d0=d1;
clear a;
end
end
x1%最小点坐标
min=4*(m-5)^2+(n-6)^2
这是运行结果:
ans =
58.8353
ans =
0
k =
1
x1 =
5
6
min =
0
>> 参考技术A 求范数用的就是norm,说详细一点才好帮你 参考技术B 把你的程序贴出来,我来帮你解决。
matlab常用函数
1)查找向量中某个元素的位置:a=[1,2,34,5],查找34的位置:ans=find(a==34)
2)统计某个元素出现的次数:ans.length就得到元素34出现的次数
3)norm(A)函数用于返回A的范数,如果A是向量(行向量、列向量),norm(A)就是计算A的2范数,等价于norm(A,2)。二范数就是向量所有元素的平方和,再开二次方。(参考:http://blog.sina.com.cn/s/blog_7d36d1910100wh4x.html)
以上是关于MATLAB中norm函数的主要内容,如果未能解决你的问题,请参考以下文章