python超越方程_matlab简单的超越方程求解近似值

python超越方程_matlab简单的超越方程求解近似值本文介绍了如何使用 Python 和 Matlab 解决超越方程的近似解

超越方程(英语:transcendental equation)是包含超越函数的方程,也就是方程中有无法用自变数的多项式或开方表示的函数,与超越方程相对的是代数方程。超越方程的求解无法利用代数几何来进行。大部分的超越方程求解没有一般的公式,也很难求得解析解。

超越方程简单的计算可以用折线法计算,既先用matlab画出图像找出解的大致范围,之后用折线法算出大致的解。

例:x^2=e^(x/2)-1;   %此题有3个解,一个小于1,一个大于8小于9,一个是负数。下面解释之针对8~9之间的解;

函数图像:

81a9dd9e197e91d8ee6e3683b0327b4f.png

(1)无法直接求解,但可以分成两个函数,两边同时开方,现只讨论右侧为正数的情况。要用折线法计算。

两个方程:y=x;

y=sqrt(exp(x/2)-1);

(2)在matlab中画出两个图像,找出交点所在的范围。程序如下:

x=1:100;

y1=x;

y2=sqrt(exp(x./2)-1);

plot(x,y1);

hold on;    //此命令可以使两个函数图像出现在一张图上,意思是将第一个图像加到第二个图像上

plot(x,y2);

(3)此时查看图像,发现解所在的范围在8~9直间,接下来就是折算法求解了。两个方法:

方法一:

(1)   首先令x=8(左范围);

因为存在y=x这个式子,所以y=8;

因为y=sqrt(exp(x./2)-1),所以x1=x=2*ln(y^2+1);

再令y=x1;

再执行x1=2*ln(y^2+1);

再令y=x1;

再执行x1=2*ln(y^2+1);

依此循环 直到x1不变时,x1即为此方程的近似解为8.6625。

(2)下图是折线法的原理图,目的是无限接近于正解,可参考此图理解第(1)步。

55476f225367d293148cae9bb0feb017.png

方法二:程序法

(1)新建脚本,输入程序:

x(1)=8;

y=x;

for n=1:149

x(n+1)=2*log(x(n)^2+1);

end

n=1:150;

plot(n,x(n))

x(150)            %  x(150)就趋近于最终解

运行结果:x(150)=8.6625;

79219fa81632e8717bfdc94bd609a8ff.png

今天的文章 python超越方程_matlab简单的超越方程求解近似值分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-06 08:57
下一篇 2025-01-06 08:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/103553.html