matlab 解变系数方程

题目:用function编写函数完成求等式a*x^2+b*x+c=0的根,输入变量为a,b,c三个系数,输出变量为等式的跟。我的解决:我的a,b,c都是手动输入的但是执行... 题目:用function编写函数完成求等式 a*x^2+b*x+c=0的根,输入变量为a,b,c三个系数,输出变量为等式的跟。

我的解决:我的a,b,c都是手动输入的
但是执行
function y=myfunction(x);
y=solve('a*x^2+b*x+c=0');
时候,得到的结果是
y =

1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
也就是说输入的a,b,c并没有传进去,请问如何解决?
展开
 我来答
lhmhz
高粉答主

2014-03-18 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16987

向TA提问 私信TA
展开全部

函数定义有问题。因为你要定义的变量为a、b、c,所以函数体应有a、b、c三个变量。即

function y=myfunction(a,b,c);

syms x

y=solve(a*x^2+b*x+c);

 

在命令窗口中,执行

追问

我按你的试了 确实可以

 但是还有几个问题

  1. y=solve(a*x^2+b*x+c=0) 这个加上=0就会报错为什么?

  2. solve里面什么时候加引号?这里加了引号为什么会出错?

  3. syms x 是什么意思?不打可以吗?

追答
问题1:为什么y=solve(a*x^2+b*x+c=0) 这个加上=0就会报错
因为这样写,不符合solve()函数的书写的格式

问题2:solve里面什么时候加引号
当a、b、c是一个实际的数时,可以加引号,即solve(’1*x^2+6*x+4=0‘)

问题3:syms x 是什么意思?不打可以吗?
syms x是对x的变量声明,是全局变量。如不声明,solve(1*x^2+6*x+4)求解就会报错。不写的话,solve()必须书写成这样,solve(’1*x^2+6*x+4=0‘)
江苏华简晟01
2024-10-21 广告
色谱检测服务热线18721007633, 江苏华简晟检测科技是研究性测试服务机构,基于多年的分析表征专业技术积累和辐射全国的服务网络,每年出具数万分技术报告,累计服务客户数千万家。... 点击进入详情页
本回答由江苏华简晟01提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式