ssg 发表于 2010-7-15 09:00:02

请教一个计算问题

x1=0.21287E-02;

x2=0.50852E-04;
x3=0.10625E-02;
x4=0.85819E-03;
x5=0.69463E-03;
x6=0.66474E-03;
x7=0.58229E-03;
x8=0.57083E-03;
x9=0.51489E-03;
x10=0.50801E-03;
x11=0.46560E-03
x12=0.46043E-03
x13=0.42643E-03
x14=0.42210E-03
x15=0.39388E-03

x16=0.39002E-03
x17=0.36600E-03
x18=0.36242E-03
x19=0.34162E-03
x20=0.33823E-03
x21=0.31999E-03
x22=0.31672E-03
x23=0.30057E-03
x24=0.29739E-03
x25=0.28299E-03
x26=0.27989E-03
x27=0.26697E-03
x28=0.26394E-03
x29=0.25230E-03
x30=0.24934E-03m=0.02,   y1=0.48-x1-m,k1=(2/y1).^(3)-(2/y1).^(9),直到求出k30,
Matlab如何写程序,谢谢。

guocong89 发表于 2010-7-15 10:20:34

x=;
m=0.02;
y=0.48-x-m;
k=(2/y).^3-(2/y).^9
难道你是想生成 xi 这种变量

ssg 发表于 2010-7-15 10:37:43

是的,以xi为变量,但x1,x2...x30之间没有规律。一个一个的代入比较麻烦,能否写个程序,x值如前面所述一次计算出所有的y值和k值来。

guocong89 发表于 2010-7-15 11:57:52

用 eval,用个循环for i=1:30
    eval(sprintf('y%d=0.48-x%d-m',i,i))
end

ssg 发表于 2010-7-15 13:57:08

恩 谢谢,能否帮我把k值也写一下,初学者,自己弄起来不是很上手。

guocong89 发表于 2010-7-15 14:03:35

方法一样的eval(sprintf('k%d=(2/y%d).^(3)-(2/y%d).^(9)',i,i,i))

ssg 发表于 2010-7-15 15:38:35

输入代码,问题解决了,谢谢guocong89 。

hill711 发表于 2010-7-16 09:06:14

x=;
m=0.02;
y=0.48-x-m;
k=(2/y).^3-(2/y).^9
难道你是想生成 xi 这种变量
guocong89 发表于 2010-7-15 10:20 http://forum.simwe.com/images/common/back.gif
我觉得这个挺好的,你定义x为数组,然后直接点运算,直接可以算出所有的k值
x长度是多少,k也就是一样的长度,两者是一一对应的

我帮你算的:
x=[0.21287E-02
0.50852E-04
0.10625E-02
0.85819E-03
0.69463E-03
0.66474E-03
0.58229E-03
0.57083E-03
0.51489E-03
0.50801E-03
0.46560E-03
0.46043E-03
0.42643E-03
0.42210E-03
0.39388E-03
0.39002E-03
0.36600E-03
0.36242E-03
0.34162E-03
0.33823E-03
0.31999E-03
0.31672E-03
0.30057E-03
0.29739E-03
0.28299E-03
0.27989E-03
0.26697E-03
0.26394E-03
0.25230E-03
0.24934E-03
];
m=0.02,   y=0.48-x-m,k=(2/y).^(3)-(2/y).^(9)

结果:
y =
   0.457871300000000
   0.459949148000000
   0.458937500000000
   0.459141810000000
   0.459305370000000
   0.459335260000000
   0.459417710000000
   0.459429170000000
   0.459485110000000
   0.459491990000000
   0.459534400000000
   0.459539570000000
   0.459573570000000
   0.459577900000000
   0.459606120000000
   0.459609980000000
   0.459634000000000
   0.459637580000000
   0.459658380000000
   0.459661770000000
   0.459680010000000
   0.459683280000000
   0.459699430000000
   0.459702610000000
   0.459717010000000
   0.459720110000000
   0.459733030000000
   0.459736060000000
   0.459747700000000
   0.459750660000000

k =
1.0e+005 *
Columns 1 through 5
                   0-5.556704975728231    0                   0                   0
Columns 6 through 10
                   0                   0                   0                   0                   0
Columns 11 through 15
                   0                   0                   0                   0                   0
Columns 16 through 20
                   0                   0                   0                   0                   0
Columns 21 through 25
                   0                   0                   0                   0                   0
Columns 26 through 30
                   0                   0                   0                   0                   0


貌似计算精度还不够,要么就是你的x有问题,结果有很多零
页: [1]
查看完整版本: 请教一个计算问题