• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab 函数最大值点变量值确定方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

先明确Matlab里的函数绘图也是由点连成,所以这里的函数其实可以看做数组来处理。

以三元函数(对应二维数组)为例:

clc;
f=13000:100:19000;
k=0:0.01:1;
[f,k]=meshgrid(f,k);
Us=10;
Rs=0.1;
Ls=10^(-4);
Cs=10^(-6);
Rd=0.1;
Ld=10^(-4);
Cd=10^(-6);
Rw=10;
M=sqrt(Ls.*Ld).*k;
w=2.*pi.*f;
I1=Us./(Rs+w.*Ls.*j+1./(w.*Cs.*j)+(w.*w.*M.*M)./(Rd+Rw+w.*Ld.*j+1./(w.*Cd.*j)));
I2=j.*w.*M.*Us./(Rs+j.*w.*Ls+1./(j.*w.*Cs))./(Rd+Rw+j.*w.*Ls+w.*w.*M.*M./(Rd+Rw+j.*w.*Ls));
I1real=real(I1);
I2real=real(I2);
P=I1real.*Us;
Pw=I2real.*I2real.*Rw;
%surf(f,k,I1),hold on
%surf(f,k,I2real);
I2abs=abs(I2);
I2absmax=max(I2abs);
I2max=max(I2absmax);
[kn,fn]=find(I2abs==I2max);
disp(I2max);
disp(fn);
disp(13000+(fn-1).*100);
disp(kn);
disp(0+(kn-1).*0.01);
disp(I2abs)

  使用max()函数找出最大值,再用find()函数查找与最大值对应的元素的行列坐标。

  find()函数使用说明如下:

  [kn,fn]=find(I2abs==I2max)

kn,fn为当I2abs=I2max时对应的元素行列坐标。

再根据得到的行列坐标倒推两个自变量的值:

f=13000+(fn-1).*100

k=0+(kn-1).*0.01
//由变量起始值和间隔值倒推

在上例中,I2abs最大值为61.6064,对应的行列坐标为101和30,两变量的间隔值分别为100和0.01,倒推得函数最大值时量变量值为f=15900,k=1。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab中norm函数的用法发布时间:2022-07-18
下一篇:
Matlab中min/max函数的误解发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap