Matlab用solve函数,提示错误
clearall;closeall;clc;b=10;symsxzi;fori=0:0.01:piz=10/pi*(sini/sqrt(3)-i)-2;solve(cos...
clear all;close all;clc;
b=10;
syms x z i;
for i=0:0.01:pi
z=10/pi*(sini/sqrt(3)-i)-2;
solve(cosi=((b-x)^2+z^2+x^2+z^2-b^2)/(2*((b-x)^2+z^2)^0.5*(x^2+z^2)^0.5)),'ignoreProperties', true);
plot(x,z);
hold on;
end
怎么改呢 展开
b=10;
syms x z i;
for i=0:0.01:pi
z=10/pi*(sini/sqrt(3)-i)-2;
solve(cosi=((b-x)^2+z^2+x^2+z^2-b^2)/(2*((b-x)^2+z^2)^0.5*(x^2+z^2)^0.5)),'ignoreProperties', true);
plot(x,z);
hold on;
end
怎么改呢 展开
1个回答
展开全部
solve函数出错时,可以检查代码是否有如下问题:
1、是否有调用格式的错误,传入的表达式参数需要统一为字符串,或者统一为符号变量。(matlab在帮助程序中已经删去了对字符串传参的说明,字符串传参很有可能在未来版本被删除,因此推荐使用符号表达式传参数)
2、表达式中有错误。
①等式中的等号,对于字符串来说可以是'='或者'==',但是对于符号变量,则只能是'=='。
②习惯性错误,如 2x+1、xy、sinx、e^x、ln(x) 等等,这些都是错误的,会直接报错。
应该改为2*x+1 x*y sin(x) exp(x) log(x)
3、方程太过复杂,solve函数算法解不出来。这种情况不会报错,会返回warning说明说找不到解或是返回隐函数。
1、是否有调用格式的错误,传入的表达式参数需要统一为字符串,或者统一为符号变量。(matlab在帮助程序中已经删去了对字符串传参的说明,字符串传参很有可能在未来版本被删除,因此推荐使用符号表达式传参数)
2、表达式中有错误。
①等式中的等号,对于字符串来说可以是'='或者'==',但是对于符号变量,则只能是'=='。
②习惯性错误,如 2x+1、xy、sinx、e^x、ln(x) 等等,这些都是错误的,会直接报错。
应该改为2*x+1 x*y sin(x) exp(x) log(x)
3、方程太过复杂,solve函数算法解不出来。这种情况不会报错,会返回warning说明说找不到解或是返回隐函数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询