超越复数方程怎么解?求个公式

Python016

超越复数方程怎么解?求个公式,第1张

超越方程可以用功能强大的matlab求解

在此举一个已知弦长和弧长求园半径的例子.

法一:使用自带函数

%ezplot('x*sin(pi/(6*x))-0.5',[0.6,2])

示例:半径=1,六分之一圆弧

ezplot('x*sin(b/x)-a',[0.6,2])

%求解方程:x*sin(b/x)-a=0

%ezplot('x*sin(pi/(4*x))-0.707',[0.6,2])

hold

on

plot(xlim,[0

0],'r')

grid

%

a=弦长/2

,

b=弧长/2

,【】为解区间.

%

图中红线和蓝线的交点就是解

%

更精确的解可以使用二分法求解

%

本例可以选择交点两侧的点[2,4],[5,7]再次求解,可以更精确

%

本人认为如此处理没有解不出来的超越方程

法二:差值法收敛求解

a=0.707

%弦长/2

b=pi/4

%弧长/2

r1=0

%收敛区间

r2=3

for

i=1:10000

%收敛次数

r=(r1+r2)/2

%

c(i)=r*sin((180*b)/(pi*r))

c(i)=r*sin(pi/(4*r))

%

c(i)=r*sin(b/r)

if

c(i)>a

r2=r

else

r1=r

1、R语言矩阵函数

t(x) 转置diag(x) 对角阵x %*% y 矩阵运算solve(a,b) 运算a%*%x=b得到xsolve(a) 矩阵的逆rowsum(x)行加和colsum(x)列加和rowMeans(x) 行平均colMeans(x) 列平均

2、求解线性方程组

分析:使用函数solve(a,b),运算a%*%x=b得到x。a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)运行结果>a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)[1] 2 1a<-matrix(c(1,1,1,-1),2,2)

b<-c(3,1)

solve(a,b)

运行结果

>a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)

[1] 2 1

注:这里矩阵a从数组读数是按照列读数