帮忙编个程续解RK方程的V值,最好是C语言

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:05:12
编程求RK方程中的V值,RK方程为:
p=RT/(V-b)-a/[(sqrT)V(V+b)],其中p,a,b,R,T是要输入的已知常数,sqr表示根号(我不知道这个表示有没有弄错,所以说明一下),运行程序输入上续常数后输出V
补充一下,用RK方程求解V涉及到一元三次方程的解法,一元三次方程的解的通式虽然可以求出来,但过程相当麻烦,而且通常涉及到复数,还要对具体的系数做不同的分析。我没有那个耐心,否则我也没必要到百度上来提问了。事实上简单的编程我也会一些,这个题的程序用简单的方法肯定是编不出来的。我提这个问题,最终目的不是要这个程序,而是希望利用一个程序通过输入已知参数求出V的结果。

再补充一下:我自己编了一个,运行没有得到结果,高手帮忙改一下。程序如下
#include<stdio.h>
#include<math.h>
void main()
{
fload a,b,R,T,p,S,s;
fload a[5];
int i,j;
a=a[0];
b=a[1];
R=a[2];
T=a[3];
p=a[4];
V=(1e-6)+(1e-6)*j;
s=R*T/(V-b)-a/(sqrt(T)*V*(V+b)-p;
S=fabs(s);
printf("input a,b,R,T,p:\n");
for(i=0;i<5;i++)
scanf("%g",&a[i]);
for(j=o;j<1e7;j++)
{if(S<1e-7)
printf("V=%g\n",V);
else
continue;
}
}

网页上一些符号可能看不大清,复制到文本文档中就能看清了

帮你改好了,已经编译运行通过:
#include<stdio.h>
#include<math.h>
void main()
{
double aa,b,R,T,p,S,s,V;
double a[5];
int i,j;
aa=a[0];
b=a[1];
R=a[2];
T=a[3];
p=a[4];
V=(1e-6)+(1e-6)*j;
s=R*T/(V-b)-aa/(sqrt(T)*V*(V+b))-p;
S=fabs(s);
printf("input a,b,R,T,p:\n");
for(i=0;i<5;i++)
scanf("%g",&a[i]);
for(j=0;j<1e-7;j++)
{if(S<1e-7)
printf("V=%g\n",V);
else
continue;
}
}

但是不太明白相关数学知识,所以不知道逻辑对不对:)

我会C++的,和C差不多,就是打印的时候有点区别:
int p=0;
int a,b,R,T;
cin>>a;
cin>>b;
cin>>R;
cin>>T;
cin>>P;

V=....//化出这个方程V的表示,我这里不方便化
cout<<"V="<<V;

呵呵,我也猜出是这个意思,,,,我有时间给想一下吧,但我只会C++ 的,呵呵,
不简单,我找了一下网上的资料,你到这个网站上看看吧,