level 2
flx2135097
楼主
此题目是导师布置的,我前期使用matlab求解未成功,转而使用mma,无奈仓促接触之间有很多问题不明白,而时间较为紧迫只好向各位大神求助。
因为公式形式较为复杂, 我将编出来的部分程序代码贴出来,没有编出来的部分就直接贴图片了,见谅!
图片按顺序分别是 要最终求解的积分Cp,隐函数1、2、3,代码1、2、3结果,最终拟达到的结果。

目的:
主要目的是求解积分Cp,最终获得Cp关于自变量λ的数值解以及绘制的曲线图。
问题详述:
积分方程中出现了4个变量Ceff、Xe、β、X(独立变量),以及还有1个未在式中出现的变量λ(独立变量)。它们之间有如下关系:
1. Ceff(因变量)与λ(自变量)之间的关系通过隐函数一表示(容易使用mma求解此隐式并绘制曲线,代码见代码1)式中0.6为离散的常数变量;

2. Xe(因变量)与Ceff、λ之间的关系通过隐函数二表示(与隐函数一联立可以求得Xe关于λ的数值解,并绘制曲线,代码见代码2);

3. β(因变量)与λ(自变量1)、X(自变量2)组成了隐函数三(X与λ均为独立变量),代码见代码3。

三个隐函数单独求解并绘制图像的话还不是太麻烦,可是在mma中如何将这三个函数联立,或者如何调用前一步的结果,最终获取Cp关于λ的关系呢?如果各位大神感觉做起来有点麻烦的话,还请指点一下学习方向,目前一头雾水中。。。
代码中的λ就是公式截图里的λT。
代码1:
Show@Table[
ContourPlot[ceff-((c+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*(Abs[1-ceff])^(8/5))*t^(-1)+2*3.1415926*(Sign[1-ceff]*0.0225*(1+(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))^2)^(3/8)*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))^(-0.25)*(Abs[1-ceff])^(8/5))*0.267*t^(-1))/(1+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*Abs[1-ceff]^(8/5))*t^(-1)))==0,{t,0,0.5},{ceff,0,1}],{c, -0.4,0.9, 0.1}]
其中c是常数,后边联立的时候取c为0.6。
代码2:
ContourPlot[ceff-((0.6+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*(Abs[1-ceff])^(8/5))*\[Lambda]^(-1)+2*3.1415926*(Sign[1-ceff]*0.0225*(1+(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))^2)^(3/8)*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))^(-0.25)*(Abs[1-ceff])^(8/5))*0.267*\[Lambda]^(-1))/(1+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*Abs[1-ceff]^(8/5))*\[Lambda]^(-1)))==0,{\[Lambda],0,0.5},{ceff,0,1}][[1,1]]/.{\[Lambda]_,ceff_}:>{\[Lambda],Solve[xe-(ceff-2.22\[Lambda]^0.625*xe^(3/8))^0.5==0,xe][[1,1,2]]}//ListPlot
(这也是我想问的一个问题,就是隐含数组联立的时候,我只能将此常数变量先赋一个值,然后画出曲线,能否像单一隐函数作图一样,给c赋一组值,直接画出一组曲线来?)
代码3:
ContourPlot3D[\[Beta]-1-(30/(49*3.14159*(0.162*(1+8*\[Beta])^(0.5)*(1-0.229*\[Beta])^(-0.5))*(0.526*(1-0.019*\[Beta])^(0.3)*(1-0.229*\[Beta])^(0.1)*(1+8*\[Beta])^(-0.4)*(1+1.608*\[Beta])^(-0.8))))^(5/8)*\[Lambda]^(5/8)*x^(-13/8)==0,{\[Lambda],0,0.5},{x,0,1},{\[Beta],0,10}]
a0=0.162*(1+8*\[Beta])^(0.5)*(1-0.229*\[Beta])^(-0.5)
r0=0.526*(1-0.019*\[Beta])^(0.3)*(1-0.229*\[Beta])^(0.1)*(1+8*\[Beta])^(-0.4)*(1+1.608*\[Beta])^(-0.8)







2018年01月28日 09点01分
1
因为公式形式较为复杂, 我将编出来的部分程序代码贴出来,没有编出来的部分就直接贴图片了,见谅!
图片按顺序分别是 要最终求解的积分Cp,隐函数1、2、3,代码1、2、3结果,最终拟达到的结果。

目的:主要目的是求解积分Cp,最终获得Cp关于自变量λ的数值解以及绘制的曲线图。
问题详述:
积分方程中出现了4个变量Ceff、Xe、β、X(独立变量),以及还有1个未在式中出现的变量λ(独立变量)。它们之间有如下关系:
1. Ceff(因变量)与λ(自变量)之间的关系通过隐函数一表示(容易使用mma求解此隐式并绘制曲线,代码见代码1)式中0.6为离散的常数变量;

2. Xe(因变量)与Ceff、λ之间的关系通过隐函数二表示(与隐函数一联立可以求得Xe关于λ的数值解,并绘制曲线,代码见代码2);
3. β(因变量)与λ(自变量1)、X(自变量2)组成了隐函数三(X与λ均为独立变量),代码见代码3。
三个隐函数单独求解并绘制图像的话还不是太麻烦,可是在mma中如何将这三个函数联立,或者如何调用前一步的结果,最终获取Cp关于λ的关系呢?如果各位大神感觉做起来有点麻烦的话,还请指点一下学习方向,目前一头雾水中。。。代码中的λ就是公式截图里的λT。
代码1:
Show@Table[
ContourPlot[ceff-((c+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*(Abs[1-ceff])^(8/5))*t^(-1)+2*3.1415926*(Sign[1-ceff]*0.0225*(1+(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))^2)^(3/8)*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))^(-0.25)*(Abs[1-ceff])^(8/5))*0.267*t^(-1))/(1+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*Abs[1-ceff]^(8/5))*t^(-1)))==0,{t,0,0.5},{ceff,0,1}],{c, -0.4,0.9, 0.1}]
其中c是常数,后边联立的时候取c为0.6。
代码2:
ContourPlot[ceff-((0.6+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*(Abs[1-ceff])^(8/5))*\[Lambda]^(-1)+2*3.1415926*(Sign[1-ceff]*0.0225*(1+(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))^2)^(3/8)*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))^(-0.25)*(Abs[1-ceff])^(8/5))*0.267*\[Lambda]^(-1))/(1+1/3*(Sign[1-ceff]*2.566*(0.162*(1+8*ceff)^(0.5)*(1-0.229*ceff)^(-0.5))*(0.526*(1-0.019*ceff)^(0.3)*(1-0.229*ceff)^(0.1)*(1+8*ceff)^(-0.4)*(1+1.608*ceff)^(-0.8))*Abs[1-ceff]^(8/5))*\[Lambda]^(-1)))==0,{\[Lambda],0,0.5},{ceff,0,1}][[1,1]]/.{\[Lambda]_,ceff_}:>{\[Lambda],Solve[xe-(ceff-2.22\[Lambda]^0.625*xe^(3/8))^0.5==0,xe][[1,1,2]]}//ListPlot
(这也是我想问的一个问题,就是隐含数组联立的时候,我只能将此常数变量先赋一个值,然后画出曲线,能否像单一隐函数作图一样,给c赋一组值,直接画出一组曲线来?)
代码3:
ContourPlot3D[\[Beta]-1-(30/(49*3.14159*(0.162*(1+8*\[Beta])^(0.5)*(1-0.229*\[Beta])^(-0.5))*(0.526*(1-0.019*\[Beta])^(0.3)*(1-0.229*\[Beta])^(0.1)*(1+8*\[Beta])^(-0.4)*(1+1.608*\[Beta])^(-0.8))))^(5/8)*\[Lambda]^(5/8)*x^(-13/8)==0,{\[Lambda],0,0.5},{x,0,1},{\[Beta],0,10}]
a0=0.162*(1+8*\[Beta])^(0.5)*(1-0.229*\[Beta])^(-0.5)
r0=0.526*(1-0.019*\[Beta])^(0.3)*(1-0.229*\[Beta])^(0.1)*(1+8*\[Beta])^(-0.4)*(1+1.608*\[Beta])^(-0.8)






