这是一个化学分析问题,要求求解指数方程组,希望指教,具体题目如下!
热心网友
娃。。。看不懂啊。
热心网友
先把式子变换一下:X=a*exp(-K1*t)=K1=-(ln(X/a))/t 这样通过调用一个#include C函数库就可以直接调用函数log()来求解K1;Y=(K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1)这个式子由于无法直接表示成K2的表达式,但可以用数值分析的方法编程(其中K1因为在上面已经求得结果所以可以看成是常数来编程),因为要求7位有效数字,所以可以用每次使K2递增0。0000001来看表达式 (K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1)是否逼近Y=0。6这一结果,一直循环到满足循环条件为止。 main(){double X=1。2,Y=0。6,K1(已求出),K2,t=115,a=2。1;/*K2可以先给定一个估计下限值,如-1000*/while((Y-(K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1))<0。0000001){ K2=K2+0。0000001;}printf("K2=%7f",K2);/*用%7f来输出7位有效数字*/} 。
热心网友
为什么自己一定要用C语言编呢?是不是编程题目?如果不是的话,用mathcad这样的软件就可以解决这个问题了
热心网友
先把式子变换一下:X=a*exp(-K1*t)=K1=-(ln(X/a))/t 这样通过调用一个#include C函数库就可以直接调用函数log()来求解K1;Y=(K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1)这个式子由于无法直接表示成K2的表达式,但可以用数值分析的方法编程(其中K1因为在上面已经求得结果所以可以看成是常数来编程),因为要求7位有效数字,所以可以用每次使K2递增0。0000001来看表达式 (K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1)是否逼近Y=0。6这一结果,一直循环到满足循环条件为止。 main(){ double X=1。2,Y=0。6,K1(已求出),K2,t=115,a=2。1; /*K2可以先给定一个估计下限值,如-1000*/ while((Y-(K1*a)*(exp(-K1*t)-exp(-K2*t))/(K2-K1))<0。0000001){ K2=K2+0。0000001;}printf("K2=%7f",K2);/*用%7f来输出7位有效数字*/}。
热心网友
为什么自己一定要用C语言编呢?是不是编程题目?如果不是的话,用mathcad这样的软件就可以解决这个问题了
热心网友
你都没写清楚,看不见呀