24小时热门版块排行榜    

查看: 364  |  回复: 1

shenailin

木虫 (正式写手)

[交流] 【求助】利用matlab找函数极值点坐标 已有1人参与

syms x y z q;
A=xlsread('C:\Users\shenjunfeng\Desktop\proton trasfer\1T.xls');
x0=A(:, 3);
y0=A(:, 4);
z0=A(:, 5);
q0=A(:, 2);
V1x=0;V1y=0;V1z=0;
U1x=0;U1y=0;U1z=0;
for i=[1:25 27:30];
    V1x=V1x+q0(i).*(x-x0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    V1y=V1y+q0(i).*(y-y0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    V1z=V1z+q0(i).*(z-z0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    V1=(V1x.^2+V1y.^2+V1z.^2).^(1/2);
    U1x=U1x+q0(i).*q*(x-x0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    U1y=U1y+q0(i).*q*(y-y0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    U1z=U1z+q0(i).*q*(z-z0(i))./((x-x0(i)).^2+(y-y0(i)).^2+(z-z0(i)).^2);
    U1=(U1x.^2+U1y.^2+U1z.^2).^(1/2);
end
diff(U1,'x')
diff(U1,'y')
diff(U1,'z')
想找出U1的极值点的坐标,编到这里不会了,请高手帮忙,下面是1T 文件里的数据:
1        0.4397         -1.74856        -2.80728        0
2        -0.5663         -2.14786        -4.14676        0
3        0.4745         0.99366        -4.50379        0
4        0.7356         -1.85968        -0.57935        0
5        -0.6270         -2.54142        -1.74274        0
6        0.7081         0.38903        -1.60605        0
7        0.2450         -1.06427        -6.02435        0
8        0.4328         -3.53884        0.52009        0
9        0.4517         -2.04553        1.49752        0
10        -0.0062         -0.35467        -2.83915        0
11        0.4693         -3.11245        -4.46919        0
12        0.4607         0        0.43235        0
13        -0.6776         1.62009        -1.49525        0
14        0.3414         -1.05544        -4.94205        0
15        -0.7934         -2.52735        0.57338        0
16        -0.6823         -0.4764        -0.51248        0
17        -0.5175         0.03228        -4.17066        0
18        -0.7884         3.00583        1.08143        0
19        -0.3505         2.81789        3.49099        0
20        0.1284         1.96486        4.55372        0
21        0.5274         2.22501        2.17612        0
22        0.8946         0.05087        3.06935        0
23        -0.6403         0.6175        4.34858        0
24        -0.7239         -1.18897        2.96936        0
25        -0.7167         0.89245        1.99694        0
26        0.4431         2.58741        0.14528        0
27        0.4175         4.0125        1.17373        0
28        0.2395         3.89369        3.63269        0
29        0.2320         2.30262        5.5872        0
30        0.4487         -0.03881        5.12388        0
                               
多谢高手赐教!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

★ ★
zzuwangshilei(金币+1):帮助他人解决问题,欢迎常来 2010-05-12 11:34:07
robert2020(金币+1):欢迎常来仿真模拟版交流。 2010-05-12 12:32:10
shenailin(金币+20): 2010-05-14 08:52:33
这是求极值的具体语句(参照这个你该能搞定问题了):

        极值:
        data是你的数据,
        find(diff(sign(diff(data)))==-2)+1
        找到极大值的位置

        find(diff(sign(diff(data)))==2)+1
        找到极小值的位置

        data(find(diff(sign(diff(data)))==-2)+1)和
        data(find(diff(sign(diff(data)))==2)+1)
        返回的是极大值和极小值
2楼2010-05-12 10:33:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shenailin 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见