24小时热门版块排行榜    

查看: 226  |  回复: 0

lyjade2014

金虫 (小有名气)

[求助] matlab菜鸟一枚,请走过路过的进来指导一下,跪谢!!!

公式为:
1=x•(1+10^(9.27-pH)+[Ni]•10^2.8+[Mn]•10^1.0)+x^2•(2•[Ni]•10^4.04+2•[Mn]•10^1.54)

+x^3•(3•[Ni]•10^5.77+3•[Mn]•10^1.7)+x^4•(4•[Ni]•10^6.96+4•[Mn]•10^1.3)

+x^5•(5•[Ni]•10^2.71)+x^6•(6•[Ni]•10^2.74)
其中[Ni][Co][Mn]是上一步计算出来的,可以看做是已知的,而pH是个变量,我希望给出一个pH就能得到一个x(是正实数解)。以下是我编写的程序,能不能帮我看看我写的对不对呢?跪谢!!求回复!!
%计算出x
a1=1+10^(9.27-pH)+[Ni]*10^2.8+[Mn]*10;
a2=2*[Ni]*10^4.04+2*[Mn]*10^1.54;
a3=3*[Ni]*10^5.77+3*[Mn]*10^1.70;
a4=4*[Ni]*10^6.96+4*[Mn]*10^1.30;
a5=5*[Ni]*10^2.71;
a6=6*[Ni]*10^2.74;
p1=[a6 a5 a4 a3 a2 a1 -1];
x=roots(p1);
%   f=sym('x*a1+x^2*a2+x^3*a3+x^4*a4+x^5*a5+x^6*a6-1');
%   solve('f','x');

for k=1:length(x)
        if x(k)>0&&isreal(x(k))
            index=k;
        else
            index=[];
        end
    end
    if ~isempty(index)
    x=x(index);
    end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lyjade2014 的主题更新
信息提示
请填处理意见