有一式子Y=(a^x+b^x)^(1/x),其中a,b是已知常数,怎么用matlab画出y关于x变化的图像?想要寻找Y在何时最大实际上原问题是求Y=(a^x+b^x+c^x+......+n^x)^(1/x),a,b,c,...,n已知,求Y在X取何值时最小。

问题描述:

有一式子Y=(a^x+b^x)^(1/x),其中a,b是已知常数,怎么用matlab画出y关于x变化的图像?想要寻找Y在何时最大
实际上原问题是求Y=(a^x+b^x+c^x+......+n^x)^(1/x),a,b,c,...,n已知,求Y在X取何值时最小。

>> x=-10:0.32:10;
>> M=randint(1,10,[1 10]);%%产生a,b,c...n,n=10
>> yy=zeros(10,length(x));
for i=1:10
      yy(i,:)=M(i).^x;
   end%%%%得到a^x b^x c^x n^x,yy的第一行对应a^x,第二行对应b^x,第三行对应c^x...
>> y=sum(yy).^(1./x);%%得到最终的y,sum是按列求和就是(a^x+b^x+c^x+.+n^x)
>> plot(x,y)%%x和y是一一对应的关系,所以找到y最大时的列号,那么x的取值就是该列号对应的元素.
>> [m,n]=find(y==max(y))%%画出的图像是单峰值,是最大值,不是最小值.
m =
     1
n =
    33%%最大值的列号
>> x=x(n)
x =
    0.2400%%y最大时对应的x