用MATLAB解此方程组.如果正确后面还能加分,谢谢!

用MATLAB解此方程组.如果正确后面还能加分,谢谢!
已知:ε1=0.26644 ε2=0.46409 ε3=0.63554 ε4=0.86384
σ1=107.72771 σ2=96.68265 σ3=96.06903 σ4=100.47939
求解方程组中的C1,C2,C3的值?
请写出程序

老师说有两种方法,一:化简,二:求近似解

油炸更健康 1年前 已收到2个回答 举报

huajinli 幼苗

共回答了18个问题采纳率:77.8% 举报

鉴于你是初学我把方程组的M文件给你写上(这里需要注意的是将变量C1,C2,C3用数组的形式表示,即C(1),C(2),C(3)):
function f=myfun(C)
epsilon=[0.26644,0.46409,0.63554,0.86384];
sigama=[107.72771,96.68265,96.06903,100.47939];
f(1)=exp(-C(1)*epsilon(1)+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))...
/exp(-C(1)*epsilon(2)+epsilon(2)^C(2))/(1-exp(C(3)*epsilon(2)))-sigama(1)/sigama(2);
f(2)=exp(-C(1)*epsilon(1)+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))...
/exp(-C(1)*epsilon(3)+epsilon(3)^C(2))/(1-exp(C(3)*epsilon(3)))-sigama(1)/sigama(3);
f(3)=exp(-C(1)*epsilon(1)+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))...
/exp(-C(1)*epsilon(4)+epsilon(4)^C(2))/(1-exp(C(3)*epsilon(4)))-sigama(1)/sigama(4);
命令窗口:
fsolve(@myfun,rand(1,3))%这里的rand(1,3)表示随即给C1,C2,C3赋初始值,当然如果你知道C1,C2,C3的大概范围更好,直接把处值取到这个范围内.
结果:
Optimization terminated:first-order optimality is less than options.TolFun.
ans =
3.4807 -0.5279 4.3257
上面的ans中得到的分别是C1,C2,C3的一个解,这里需要注意的是对于一般的非线性方程组,因为我们一般情况下是不知道方程到底有几个解,因此这里只能说是得到方程组的一个解,对于给定的不同初始值,求得的结果可能是不一样的,即收敛到不同的点.另外对于fsolve这个函数里面有一个控制变量optimset这个东西包含的内容很多(在求解较为复杂的问题时会用到),在此我就不做介绍了,有机会的话自己好好研究研究.

1年前 追问

7

油炸更健康 举报

非常感谢你的热心解答,请你看一看这个程序是不是正确的呢,算出的结果带入方程验算是没问题的,这个方程没有唯一解吗?

举报 huajinli

3Q,这个程序除了方程可能写错外,没有任何问题,至于有没有唯一解我没这个能力回答!

油炸更健康 举报

请问方程哪里有问题?

举报 huajinli

不好意思我的方程写错了,你的是对的 function f=myfun(C) epsilon=[0.26644,0.46409,0.63554,0.86384]; sigama=[107.72771,96.68265,96.06903,100.47939]; f(1)=(exp(-C(1)*epsilon(1))+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))... /(exp(-C(1)*epsilon(2))+epsilon(2)^C(2))/(1-exp(C(3)*epsilon(2)))-sigama(1)/sigama(2); f(2)=(exp(-C(1)*epsilon(1))+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))... /(exp(-C(1)*epsilon(3))+epsilon(3)^C(2))/(1-exp(C(3)*epsilon(3)))-sigama(1)/sigama(3); f(3)=(exp(-C(1)*epsilon(1))+epsilon(1)^C(2))*(1-exp(C(3)*epsilon(1)))... /(exp(-C(1)*epsilon(4))+epsilon(4)^C(2))/(1-exp(C(3)*epsilon(4)))-sigama(1)/sigama(4); fsolve(@myfun,rand(1,3)) Optimization terminated: first-order optimality is less than options.TolFun. ans = 1.6912 -1.5898 1.5521

seoo 幼苗

共回答了1个问题 举报

用solve 函数

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.033 s. - webmaster@yulucn.com