用matlab怎么求解含有三角函数的非线性方程

作者&投稿:裔和 (若有异议请与网页底部的电邮联系)
求救matlab求解含有三角函数的非线性方程组 我的程序如下 (跪求啊 折磨好几天了)~

clear;clc;
syms x p
eq1='p*(sin(x)^2)+(cos(x)^2)*sin(x)-0.5';
eq2='p*cos(x)*cos(2*x)-sin(x)*cos(2*x)-(sqrt(3)-2)/8';
[p,x]=solve(eq1,eq2,p,x);
x=eval(x);
p=eval(p);
log=(x==real(x));
x1=x(log);
p1=p(log);
首先是solve函数用错了,它的返回值是按字母的顺序排列的,也就是先返回p,再返回x,你把x,p弄反了,再就是程序输出的解不止一个,不知道为什么你的程序只输出一个解,最后,如果程序是你复制粘贴过来的话,倒数第二行的‘y’是什么情况?

三角函数是周期函数,其解不是唯一的,一般无显式解,只能求数值解,所以,要把已知量全写出来,未知数越少越好

求解含有三角函数的非线性方程的方法:
1、对于简单的含有三角函数的非线性方程,可以用solve()函数求解。
solve('表达式')
2、较复杂的含有三角函数的非线性方程,可以用fsolve()函数求解。或用其他数值分析方法(如二分法,牛顿法等)求解。
func=@(x) 表达式 %自定义函数
fsolve(func,x0) %x0初值

matlab可以求解三次方程吗
答:用可以matlab的solve()函数求解三次方程,例如 x³+5x²+9=0 >>syms x,x=solve(x^3+5*x^2+9)>> vpa(x.5)运行结果 或用roots()函数,求得其的根 >> p=[1 5 0 9];方程系数 >> x=roots(p)方程的根 运行结果 ...

matlab中怎么求多项式的解
答:>> F=@(x)x^3-6*x^2-72*x-27 F = (x)x^3-6*x^2-72*x-27 >> x=fzero(F,10)x = 12.1229 对于第二个例子,也可以用第三种方法:>> FUN=@(x)(x+2)^x-2 FUN = (x)(x+2)^x-2 >> x=fzero(FUN,1)x = 0.6983 最近有多人问如何用matlab解方程组的问题,其实...

怎么用MATLAB求解一元三次方程
答:用roots函数,例如 clc;clear syms x f=x^3-6*x^2+11*x-6 p=sym2poly(f)x=roots(p)结果:f = x^3-6*x^2+11*x-6 p = 1 -6 11 -6 x = 3.0000 2.0000 1.0000

谁能编程用MATLAB解一元三次方程
答:献丑了。在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存 function x=mysolve3(a,b)求解x^3+a*x^2-b=0的解 p=(-a*a)/3;q=(2*a^3+27*(-b))/27;D=(p/3)^3+(q/2)^2;if (D>=0)temp=-q/2+sqrt(D);if (temp>0) u=(temp)^(1/3); else...

matlab求解一元三次方程
答:把你方程的系数降幂排列,写成一个向量,利用roots命令即可。>> p=[1,-6,9,-9];roots(p)ans =4.4260e+000 7.8701e-001 +1.1891e+000i 7.8701e-001 -1.1891e+000i

怎么用matlab求三角形两边之间的角度
答:3. 最后,使用 `angle()` 函数来将弧度转换为度数。您可以使用以下函数来计算该度数值:```DEGREES = angle(RADIANS)```其中 angle() 函数用于将弧度转换为度数。综上所述,您可以使用以下代码来计算三角形两边之间的角度:```matlab x = 0.5;y = 0.7;A = acos((y - x) / sqrt((x^...

学生一个生活费是478.8,早餐是27餐,中餐27餐,晚餐是22餐,求早餐,中餐...
答:第三步,取惩罚因子r=2e-10,求解由∂P/∂x1=0,∂P/∂x2=0,∂P/∂x3=0,组成一元三次方程组。 第四步,用牛顿迭代法最后得到x1、x2、x3的解。 【求解过程】 【本题知识点】 1、制约函数法又称为罚函数。罚函数的基本思想是, 通过一系列罚因子构造罚函数,将问题转化为序列无约束极值问题,求...

matlab中如何求解三元复杂方程组 ?程序如下
答:解方程要求把已知数全代入,把未知数的个数降到最少,否则,多一个符号未知数,就多一点解不出的可能性。所以,你这个程序中,要把所有的已知数全代入,才可能解出来。

matlab解三元一次方程组,数值解,fsolve()函数?
答:分析了题主的三元一次方程组,可以用vpasolve()函数求解,而用fsolve()来求解,需要找到k0,k1,k2附近值,否则可能得到的结果并不是你想要的结果。该三元一次方程组求解过程如下:m=1660;t=[14.34 17.43 21.49];delta_c=[1.04 1.05 1.05];V0=[34.72 30.56 26.39];V1=[29.17...

如何用matlab三角矩阵分解?
答:•设Ax=b,A=LU,则Ax=LUx=b 于是令Ux=y,则Ly=b 这样原来方程能化为两个简单方程组 下面是LU分解的Fortran子程序 希望可以有所帮助 !求解au=b,u !n表示为方程维数 subroutine lu(a,b,n,u)implicit real(8) (a-h,o-z)real(8)::a(n,n),b(n),u(n),a_bak(n,n),b1(...