24小时热门版块排行榜    

查看: 1022  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wcwl888

金虫 (著名写手)

中华人民共和国第一任航母舰长

[求助] 菜鸟求助代码运用已有1人参与

亲爱的大神们:
       各位好,学弟近期写论文建模需要用到编程求解,但不懂运用何种软件,最近看到一篇文献里使用的模型和我的比较相似,苦于看不懂不知道该用什么软件也不知道如何运行,故请教大神指点迷津,下面是C++源代码:(附件里是模型需要的参数数值和运行结果,懂的大神可以参考一下)
#include<iostream.h>
void main ()
{ int i,j;
double a,b,c,1,v,hd,hm,n:
double w1,w2,w3,w11,w22,q1,lr11,lr12,lr1,lr21,q2,lr22,w,q,lr2;
cout<<"请依次输入参数值:";
cin>>a>>b>>c>>l>>v>>hd>>hm>>n;
for(i=j=1;i<=10,j<=10;i++,j++)
{
wl=0。5*a+0。25*b*1*(2*i-1)+0。5*v-0。25*hd*1+0。5*1*hm*(i-(j-l)*n);
w2=a/3+(b*1*i-hd*1)/3+2*v/3+2*l*hm*(i-(j-1)*n)/3;
w3=a i*b*l+b*l;
if(wl<=0) w11=0;
else if(wl>=a+i*b*l-b*l) w11=a+i*b*l-b*l;
else w11=w1;
q1=l*(a/(2*c)+b*l/(4*c)*(2*i-l)-w11/(2*c)-hd*l/(4*c));
lr21=w11*q1-v*q1-l*hm*(i-(j-1)*n)*q1;
lr11=((a-w11+hd*(i-l)*l)*(a-w11+hd*(i-l)*l)*l+(b-hd)*(a-w11+hd*(i-1)*l)*l*l*(2*i-1)+((b-hd)*(b-hd)*l*l*l*(3*i*i-3*i+1))/3)/(4*c);
if(w2<a+i*b*l-b*l) w22=a+i*b*l-b*l;
else if(w2>=a+i*b*l-hd*l) w22=a+i*b*l-hd*l;
e1se w22=w2;
q2=((a+b*l*i-hd*l-w22)*(a+b*l*i-hd*l-w22))/(4*c*(b-hd));
lr22=w22*q2-v*q2-l*hm*(i-(j-1)*n)*q2;
lr12=((a-w22+hd*(i-1)*l)*(a-w22+hd*(i-1)*l)*(a-w22+b*i*l-hd*l)/(b-hd)+(b-hd)*(-w22+hd*(i-1)*l)*(a-w22+b*i*l-hd*l)/(b-hd)*(w22+b*i*l+hd*l-a-2*hd*i*l)/(b-hd)+(b-hd)*(b-hd)*(a-w22+b*i*l-hd*l)/(b-hd)*(((w22-a-hd*l*(i-1))*(w22-a-hd*l*(i-l)))/((b-hd)*(b-hd))+(w22-a-hd*l*(i-1))/(b-hd)*i*l+i*i*l*l)/3)/(4*c);
if(lr21>=lr22) {w=w11;q=q1:lr2=lr21;lr1=lr11;}
else {w=w22;q=q2;lr2=lr22;lr1=lr12;}
cout<<w<<" "<<q<<" "<<lr1<<lr2<<endl;
}

不知道代码写的有没有错误,请懂的大神看看。帮忙备注一下每行代码都是什么意思,该如何带入数值进行运算出结果,如果运行比较困难的是否可以将这个代码转换成matlab程序语言,我学过一点matlab,但是C++代码不会运行,如果两种都会的大神还望不吝赐教,提供帮助的大神金币双手全奉供!比较急,小弟在此先拜谢了!

菜鸟求助代码运用
参数.png


菜鸟求助代码运用-1
计算结果.png
回复此楼

» 猜你喜欢

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

佛说:说了就是没说,没说就是说了,施主你又何必问呢!阿弥陀佛~
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wcwl888

金虫 (著名写手)

中华人民共和国第一任航母舰长

引用回帖:
6楼: Originally posted by wcwl888 at 2015-03-20 22:19:07
大神,我在matlab里面运行时出现如下错误,您看下哪里出现错误了?拜谢了。
??? lr11=((a-w11+hd*(i-1)*l)*(a-w11+hd*(i-1)*l*l+(b-hd)*(a-w11+hd*(i-1)*l)*l*l*(2*i-

                                       ...

大牛您好,不知道您是不是上班比较忙,小弟这几天一直在刷版,想看您的更新,这个问题一直没解决,不知道您是否能抽空指教以下,谢谢。
佛说:说了就是没说,没说就是说了,施主你又何必问呢!阿弥陀佛~
7楼2015-03-21 11:06:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
你把源码疏导c里面就可以了,注意下格式,你这直接从pdf转的肯定错误多
showmethemoney
2楼2015-03-20 12:00:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wcwl888

金虫 (著名写手)

中华人民共和国第一任航母舰长

引用回帖:
2楼: Originally posted by csgt0 at 2015-03-20 12:00:04
你把源码疏导c里面就可以了,注意下格式,你这直接从pdf转的肯定错误多

您能把这个代码转换成MATLAB语言吗?只要转换成matlab里可以运行的就可以了,金币全给您!
佛说:说了就是没说,没说就是说了,施主你又何必问呢!阿弥陀佛~
3楼2015-03-20 12:03:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
wcwl888: 金币+100, ★★★很有帮助, 你有这份心就很满足了,还没验证是否可行,金币全送您了,有什么问题再来问您,非常感谢! 2015-03-20 20:44:42
引用回帖:
3楼: Originally posted by wcwl888 at 2015-03-20 12:03:52
您能把这个代码转换成MATLAB语言吗?只要转换成matlab里可以运行的就可以了,金币全给您!...

公式只能你自己对了
CODE:
clc
clear

a=40;
b=1;
c=0.25;
l=10;
v=4;
hd=0.8;
hm=0.8;
n=1;
       
for i=1:10
    j=i;
            w1=0.5*a+0.25*b*1*(2*i-1)+0.5*v-0.25*hd*1+0.5*1*hm*(i-(j-l)*n);
                w2=a/3+(b*1*i-hd*1)/3+2*v/3+2*l*hm*(i-(j-1)*n)/3;
                w3=a+i*b*l+b*l;
                if w1<=0
            w11=0;
        elseif (w1>=a+i*b*l-b*l)
            w11=a+i*b*l-b*l;
        else w11=w1;
        end
   
        
                q1=l*(a/(2*c)+b*l/(4*c)*(2*i-l)-w11/(2*c)-hd*l/(4*c));
                lr21=w11*q1-v*q1-l*hm*(i-(j-1)*n)*q1;
                lr11=((a-w11+hd*(i-l)*l)*(a-w11+hd*(i-l)*l)*l+(b-hd)*(a-w11+hd*(i-1)*l)*l*l*(2*i-1)+((b-hd)*(b-hd)*l*l*l*(3*i*i-3*i+1))/3)/(4*c);
                if(w2<a+i*b*l-b*l)
                        w22=a+i*b*l-b*l;
        elseif(w2>=a+i*b*l-hd*l)
              w22=a+i*b*l-hd*l;
                else w22=w2;
        end
         
                q2=((a+b*l*i-hd*l-w22)*(a+b*l*i-hd*l-w22))/(4*c*(b-hd));
                lr22=w22*q2-v*q2-l*hm*(i-(j-1)*n)*q2;
                lr12=((a-w22+hd*(i-1)*l)*(a-w22+hd*(i-1)*l)*(a-w22+b*i*l-hd*l)/(b-hd)+(b-hd)*(-w22+hd*(i-1)*l)*(a-w22+b*i*l-hd*l)/(b-hd)*(w22+b*i*l+hd*l-a-2*hd*i*l)/(b-hd)+(b-hd)*(b-hd)*(a-w22+b*i*l-hd*l)/(b-hd)*(((w22-a-hd*l*(i-1))*(w22-a-hd*l*(i-l)))/((b-hd)*(b-hd))+(w22-a-hd*l*(i-1))/(b-hd)*i*l+i*i*l*l)/3)/(4*c);

                if(lr21>=lr22)
            sprintf('i=j=%3f,w=%3f, q=%3f, lr2=%3f, lr1=3%f',i,w11,q1,lr21,lr11)
        else
            sprintf('i=j=%3f,w=%3f, q=%3f, lr2=%3f, lr1=3%f',i,w11,q1,lr21,lr11)       
        end               
   
end

» 本帖已获得的红花(最新10朵)

showmethemoney
4楼2015-03-20 13:51:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见