24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1471  |  回复: 7

Kevin1987s

新虫 (初入文坛)

[求助] 求大神帮我改一下下面的程序!matlab迭代法的 不知道错在哪里!

x(1)=210;
y(1)=-90;
z(1)=-620;
p(1)=0.2988;
a(1)=-0.1096;
b(1)=0.5996;
c(1)=0.3507;
d(1)=-0.3882;          %%设定初值
for      i=2:101;        
a(i-1)=-0.1096+(i-1)*0.002648;
b(i-1)=0.5996+(i-1)*0.000269;
c(i-1)=0.3507+(i-1)*0.004468;
d(i-1)=-0.3882+(i-1)*0.007478;        %%第(i-1)的角度值

A(i-1)=x(i-1)+122.9075-48*sin(p(i-1)+0.87)+62*sin(p(i-1))-(2^(-1/2))*(265+375*sin(a(i-1)));
B(i-1)=y(i-1)+48.55-48*cos(p(i-1)+0.87)+62*cos(p(i-1))-(2^(-1/2))*(285+375*sin(a(i-1)));
C(i-1)=z(i-1)-375*cos(a(i-1));

D(i-1)=x(i-1)-7.9075-48*sin(p(i-1)+0.87)+62*sin(p(i-1))+(2^(-1/2))*(265+375*sin(b(i-1)));
E(i-1)=y(i-1)+48.55-48*cos(p(i-1)+0.87)+62*cos(p(i-1))-(2^(-1/2))*(285+375*sin(b(i-1)));
F(i-1)=z(i-1)-375*cos(b(i-1));

G(i-1)=x(i-1)-7.9075-48*sin(p(i-1)+0.87)+(2^(-1/2))*(265+375*sin(c(i-1)));
H(i-1)=y(i-1)-48.55-48*cos(p(i-1)+0.87)+(2^(-1/2))*(285+375*sin(c(i-1)));
K(i-1)=z(i-1)-375*cos(c(i-1));

L(i-1)=x(i-1)+122.9075-48*sin(p(i-1)+0.87)-(2^(-1/2))*(265+375*sin(d(i-1)));
M(i-1)=y(i-1)-48.55-48*cos(p(i-1)+0.87)+(2^(-1/2))*(285+375*sin(d(i-1)));
N(i-1)=z(i-1)-375*cos(d(i-1));

P(i-1)=375*(2^(1/2)*A(i-1)*cos(a(i-1))+2^(1/2)*B(i-1)*cos(a(i-1))-2*C(i-1)*sin(a(i-1)));
Q(i-1)=375*(-2^(1/2)*D(i-1)*cos(b(i-1))+2^(1/2)*E(i-1)*cos(b(i-1))+2*F(i-1)*sin(b(i-1)));
R(i-1)=-375*(2^(1/2)*G(i-1)*cos(c(i-1))+2^(1/2)*H(i-1)*cos(c(i-1))+2*K(i-1)*sin(c(i-1)));
S(i-1)=375*(2^(1/2)*L(i-1)*cos(d(i-1))-2^(1/2)*M(i-1)*cos(d(i-1))-2*N(i-1)*sin(d(i-1)));

T(i-1)=-(A(i-1)*(48*cos(p(i-1)+0.87)-62*cos(p(i-1)))+B(i-1)*(48*sin(p(i-1)+0.87))-62*sin(p(i-1)));
U(i-1)=-(D(i-1)*(48*cos(p(i-1)+0.87)-62*cos(p(i-1)))+E(i-1)*(48*sin(p(i-1)+0.87))-62*sin(p(i-1)));
V(i-1)=-G(i-1)*48*cos(p(i-1)+0.87)+H(i-1)*48*sin(p(i-1)+0.87);
W(i-1)=-L(i-1)*48*cos(p(i-1)+0.87)+M(i-1)*48*sin(p(i-1)+0.87);  && A-W的表达式

x(i)=x(i-1)+2*A(i-1)*0.151796/P(i-1)+2*B(i-1)*0.01542/P(i-1)+2*C(i-1)*0.256127/P(i-1)+2*T(i-1)*0.428675/P(i-1);
y(i)=y(i-1)+2*D(i-1)*0.151796/Q(i-1)+2*E(i-1)*0.01542/Q(i-1)+2*F(i-1)*0.256127/Q(i-1)+2*U(i-1)*0.428675/Q(i-1);
z(i)=z(i-1)+2*G(i-1)*0.151796/R(i-1)+2*H(i-1)*0.01542/R(i-1)+2*K(i-1)*0.256127/R(i-1)+2*V(i-1)*0.428675/R(i-1);
p(i)=p(i-1)+2*L(i-1)*0.151796/S(i-1)+2*M(i-1)*0.01542/S(i-1)+2*N(i-1)*0.256127/S(i-1)+2*W(i-1)*0.428675/S(i-1);      %%所求的x y z p的表达式

[x(i),y(i),z(i),p(i)]      %%输出x y z p

end

x y z p初值已知,迭代100次   上面这个程序运算出来貌似不是我要的结果。。。迭代循环是不是有问题啊?谢谢大神!

[ Last edited by Kevin1987s on 2012-11-15 at 11:03 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csl_2012

捐助贵宾 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2012-11-15 21:03:40
jjdg: 编辑内容 2012-11-16 10:05
你好,我刚看了你修改过的程序,你的目的应该是一直x,y,z,p的初值,然后经过迭代(经过A-W的中间处理),最后得到迭代100次后的x,y,z,p值,如果正常的话,计算结果应该逐渐趋于某一组值,即收敛。
你的程序中a(i-1)=-0.1096+(i-1)*0.002648是不是应该修改为:
a(i-1)=-0.1096+(i-2)*0.002648,因为i=2时,a(1)=-0.1096.
修改后的程序如下:
CODE:
%迭代法
clear
clc

x1=210;
y1=-90;
z1=-620;
p1=0.2988;
% a1=-0.1096;
% b1=0.5996;
% c1=0.3507;
% d1=-0.3882;          %%设定初值

for  i=1:100      
    a=-0.1096+(i-1)*0.002648;
    b=0.5996+(i-1)*0.000269;
    c=0.3507+(i-1)*0.004468;
    d=-0.3882+(i-1)*0.007478;        %%第(i-1)的角度值

    A1=x1+122.9075-48*sin(p1+0.87)+62*sin(p1)-(2^(-1/2))*(265+375*sin(a));
    B1=y1+48.55-48*cos(p1+0.87)+62*cos(p1)-(2^(-1/2))*(285+375*sin(a));
    C1=z1-375*cos(a);

    D1=x1-7.9075-48*sin(p1+0.87)+62*sin(p1)+(2^(-1/2))*(265+375*sin(b));
    E1=y1+48.55-48*cos(p1+0.87)+62*cos(p1)-(2^(-1/2))*(285+375*sin(b));
    F1=z1-375*cos(b);

    G1=x1-7.9075-48*sin(p1+0.87)+(2^(-1/2))*(265+375*sin(c));
    H1=y1-48.55-48*cos(p1+0.87)+(2^(-1/2))*(285+375*sin(c));
    K1=z1-375*cos(c);

    L1=x1+122.9075-48*sin(p1+0.87)-(2^(-1/2))*(265+375*sin(d));
    M1=y1-48.55-48*cos(p1+0.87)+(2^(-1/2))*(285+375*sin(d));
    N1=z1-375*cos(d);

    P1=375*(2^(1/2)*A1*cos(a)+2^(1/2)*B1*cos(a)-2*C1*sin(a));
    Q1=375*(-2^(1/2)*D1*cos(b)+2^(1/2)*E1*cos(b)+2*F1*sin(b));
    R1=-375*(2^(1/2)*G1*cos(c)+2^(1/2)*H1*cos(c)+2*K1*sin(c));
    S1=375*(2^(1/2)*L1*cos(d)-2^(1/2)*M1*cos(d)-2*N1*sin(d));

    T1=-(A1*(48*cos(p1+0.87)-62*cos(p1))+B1*(48*sin(p1+0.87))-62*sin(p1));
    U1=-(D1*(48*cos(p1+0.87)-62*cos(p1))+E1*(48*sin(p1+0.87))-62*sin(p1));
    V1=-G1*48*cos(p1+0.87)+H1*48*sin(p1+0.87);
    W1=-L1*48*cos(p1+0.87)+M1*48*sin(p1+0.87);  % A-W的表达式

    x2=x1+2*A1*0.151796/P1+2*B1*0.01542/P1+2*C1*0.256127/P1+2*T1*0.428675/P1;
    y2=y1+2*D1*0.151796/Q1+2*E1*0.01542/Q1+2*F1*0.256127/Q1+2*U1*0.428675/Q1;
    z2=z1+2*G1*0.151796/R1+2*H1*0.01542/R1+2*K1*0.256127/R1+2*V1*0.428675/R1;
    p2=p1+2*L1*0.151796/S1+2*M1*0.01542/S1+2*N1*0.256127/S1+2*W1*0.428675/S1;      %%所求的x y z p的表达式
  
    x1=x2;  %迭代
    y1=y2;
    z1=z2;
    p1=p2;
%     [x(i),y(i),z(i),p(i)]      %%输出x y z p
end
disp('x2=');
disp(x2)
disp('y2=')
disp(y2)
disp('z2=')
disp(z2)
disp('p2=')
disp(p2)

计算结果:
x2=
  196.4266

y2=
  -92.4946

z2=
-619.1816

p2=
   -1.2086

希望对你有用。

[ Last edited by jjdg on 2012-11-16 at 10:05 ]
2楼2012-11-15 17:54:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Kevin1987s

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by csl_2012 at 2012-11-15 17:54:28
你好,我刚看了你修改过的程序,你的目的应该是一直x,y,z,p的初值,然后经过迭代(经过A-W的中间处理),最后得到迭代100次后的x,y,z,p值,如果正常的话,计算结果应该逐渐趋于某一组值,即收敛。
你的程序中a(i-1)= ...

太感谢您了!可以求disp(x2),怎么求disp(x100)呢?把里面的2改了就算不出来了,小弟新手,刚用ml,谢谢指点!

[ 发自手机版 http://muchong.com/3g ]
3楼2012-11-15 19:47:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csl_2012

捐助贵宾 (初入文坛)


jjdg: 金币+1, 感谢参与 2012-11-16 10:05:13
我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。
4楼2012-11-15 22:02:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Kevin1987s

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by csl_2012 at 2012-11-15 22:02:46
我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。

谢谢您!那就是这个方法不能得到我预计的结果。。。还得换个思路。。。

[ 发自手机版 http://muchong.com/3g ]
5楼2012-11-15 22:38:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Kevin1987s

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by csl_2012 at 2012-11-15 22:02:46
我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。

我想问一下,您帮我改的这个程序是不是类似于  x2=x1+t1(根随i变化的方程),x3=x2+t2...
x100=x99+t99,  是这个意思么?

[ 发自手机版 http://muchong.com/3g ]
6楼2012-11-15 22:58:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csl_2012

捐助贵宾 (初入文坛)


jjdg: 金币+1, 感谢参与 2012-11-16 10:05:00
是的,你可以找本数值分析的书看看,有关于迭代法的详细介绍。
7楼2012-11-15 23:18:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Kevin1987s

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by csl_2012 at 2012-11-15 23:18:41
是的,你可以找本数值分析的书看看,有关于迭代法的详细介绍。

好的,太感谢了!嘻嘻~

[ 发自手机版 http://muchong.com/3g ]
8楼2012-11-16 00:10:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Kevin1987s 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 086000生物与医药求调剂 +3 老天眷顾之人 2026-03-31 3/150 2026-04-05 22:24 by syh9288
[考研] 生物与医药调剂 +4 十七sa 2026-04-05 4/200 2026-04-05 20:05 by lys0704
[考研] 计算机11408,286分求调剂 +7 木子念晞 2026-04-05 7/350 2026-04-05 19:02 by chy09050039
[考研] 调剂 +8 熊二想上岸 2026-04-04 8/400 2026-04-05 05:27 by houyaoxu
[考研] 288环境专硕,求调材料方向 +13 lllllos 2026-04-04 14/700 2026-04-04 23:34 by lqwchd
[考研] 295求调剂 +4 A你好研究生 2026-04-04 5/250 2026-04-04 22:46 by yu221
[考研] 0835学硕299求调剂 08大类可接受 +5 useryy 2026-04-03 5/250 2026-04-04 20:07 by 蓝云思雨
[考研] 一志愿华南师范361分,化学求调剂 +7 Nicole88888 2026-04-01 7/350 2026-04-04 18:28 by macy2011
[考研] 363求调剂 +7 zh096 2026-04-04 7/350 2026-04-04 17:13 by dongzh2009
[考研] 268求调剂 +8 你好tg 2026-04-03 9/450 2026-04-04 05:08 by gswylq
[考研] 305求调剂 +3 77Qi 2026-04-03 3/150 2026-04-03 23:01 by qzxyhcsy
[考研] 335求调剂 +7 沈清璃 2026-04-03 7/350 2026-04-03 18:55 by lijunpoly
[考研] 初试成绩337找调剂 +3 ??? ?. ? 2026-04-03 3/150 2026-04-03 11:43 by 土木硕士招生
[考研] 环境工程297分求调剂一志愿杭高院 +15 GENJIOW 2026-03-31 16/800 2026-04-02 17:56 by cyh—315
[考研] 一志愿上海海洋大学083200食品学硕,求调剂,接受其他专业 +6 what张 2026-04-01 7/350 2026-04-02 16:48 by zzsw+
[考研] 0710生物学求调剂 +9 manman511 2026-04-01 9/450 2026-04-02 10:00 by zxl830724
[考研] 304求调剂 +12 素年祭语 2026-03-31 15/750 2026-04-01 22:41 by peike
[考研] 085602化学工程268分蹲调剂 +8 月照花林。 2026-04-01 8/400 2026-04-01 22:08 by 无际的草原
[考研] 335求调剂 +3 321* 2026-03-31 4/200 2026-04-01 00:00 by 321*
[考研] 求调剂 +8 11ggg 2026-03-30 8/400 2026-03-31 13:56 by nanaliuyun
信息提示
请填处理意见