24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1022  |  回复: 5

nlgzyx

木虫 (小有名气)

[求助] matlab中的一个简单的计算问题

用MATLab编程
V1=P1*Vd-P1'*(Vd+Ve)
V2=P1*Vd+(P2- P1')*Vd-P2'*(Vd+Ve)
Vn=[P1*Vd+(P2- P1')*Vd+…+(Pn- Pn-1')*Vd]-Pn'*(Vd+Ve)

式中,等式右边的Vd 、Ve 、P1 、P1' 、P2  、P2'。。。Pn  、Pn'都是已知的
等式左边的V1、V2。。。Vn 都是需要计算的值
V1、V2都好求。。。但是Vn不知道用什么语句写,就是省略号的那部分怎么办。因为n值太大的话,一句一句写太麻烦了。
请教会的童鞋、盆友。。。谢谢啦
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

如果自己都不帮自己,那没有人会帮你!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
nlgzyx: 金币+40, ★★★★★最佳答案, 非常感谢 2012-07-05 19:31:36
xzhdty: 金币+1, 谢谢 2012-07-05 20:08:32
不知道行不行,matlab里'是转置,所以我用dP表示
CODE:
syms Vd Ve
n=3
for i=1:n
    P(i)=sym(strcat('P',num2str(i)));
    dP(i)=sym(strcat('dP',num2str(i)));
end

V(1)=P(1)*Vd-dP(1)*(Vd+Ve);
for i=2:n
    V(i)=P(1)*Vd+sum(P(2:i)-dP(1:i-1))*Vd-dP(i)*(Vd+Ve);
end

V(1)
V(2)
V(3)

ans =

P1*Vd - dP1*(Vd + Ve)


ans =

P1*Vd + Vd*(P2 - dP1) - dP2*(Vd + Ve)


ans =

P1*Vd + Vd*(P2 + P3 - dP1 - dP2) - dP3*(Vd + Ve)
showmethemoney
2楼2012-07-05 17:41:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
nlgzyx: 金币+2, 有帮助, 谢谢 2012-07-05 19:43:37
xzhdty: 金币+1, 谢谢参与 2012-07-05 20:08:49
nlgzyx: 金币+8, ★★★很有帮助, 谢谢 2012-07-06 09:31:46
如果你要的不是符号形式,只需要
把你的P,dP,Vd,Ve赋好后用下面就行了
for i=1:n
    V(i)=sum(P(1:i)*Vd)-sum(dP(1:i)*Vd)-dP(i)*Ve;
end
showmethemoney
3楼2012-07-05 17:55:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nlgzyx

木虫 (小有名气)

引用回帖:
2楼: Originally posted by csgt0 at 2012-07-05 17:41:42
不知道行不行,matlab里'是转置,所以我用dP表示

syms Vd Ve
n=3
for i=1:n
    P(i)=sym(strcat('P',num2str(i)));
    dP(i)=sym(strcat('dP',num2str(i)));
end

V(1)=P(1)*Vd-dP(1)*(Vd+Ve);
for i=2 ...

谢谢!非常感谢你的指导!但是得到的V(1)、V(2)、V(3)、V(4)为什么是一个除式的形式,按照这个除式算出的结果也是正确的,请问如何让他们显示成一个值的形式呢?谢谢啦!代码如下:
>> Vd =0.1574;
Ve =0.1216;
n=4;
for i=1:n
    P(i)=sym(strcat('P',num2str(i)));
    dP(i)=sym(strcat('dP',num2str(i)));
end
P(1)=192.12;
dP(1)=76.2;
P(2)= 264.06;
dP(2)=154.16 ;
P(3)=362 ;
dP(3)=240.22 ;
P(4)=475 ;
dP(4)=348;
V(1)=P(1)*Vd-dP(1)*(Vd+Ve);
for i=2:n
    V(i)=P(1)*Vd+sum(P(2:i)-dP(1:i-1))*Vd-dP(i)*(Vd+Ve);
end
V(1)
V(2)
V(3)
V(4)

ans =

561243/62500



ans =

4199553/250000



ans =

1593843/62500



ans =

809631/25000


>>
如果自己都不帮自己,那没有人会帮你!
4楼2012-07-05 19:34:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
4楼: Originally posted by nlgzyx at 2012-07-05 19:34:43
谢谢!非常感谢你的指导!但是得到的V(1)、V(2)、V(3)、V(4)为什么是一个除式的形式,按照这个除式算出的结果也是正确的,请问如何让他们显示成一个值的形式呢?谢谢啦!代码如下:
>> Vd =0.1574;
Ve =0. ...

用double(V)就可以了。。。。。
showmethemoney
5楼2012-07-06 09:17:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
4楼: Originally posted by nlgzyx at 2012-07-05 19:34:43
谢谢!非常感谢你的指导!但是得到的V(1)、V(2)、V(3)、V(4)为什么是一个除式的形式,按照这个除式算出的结果也是正确的,请问如何让他们显示成一个值的形式呢?谢谢啦!代码如下:
>> Vd =0.1574;
Ve =0. ...

计算数值的话用3楼那个形式就可以了,不用那么麻烦。
showmethemoney
6楼2012-07-06 09:18:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 nlgzyx 的主题更新
信息提示
请填处理意见