計算a x 2 b x c 0用c語言和matlab算出來結果不一樣什麼地方錯了?謝謝

時間 2021-08-11 18:15:20

1樓:

樓主你的tem1=-b/twoa=-b/(2*a)tem2=sqrt(fabs (disc))/twoa=sqrt(b*b-4*a*c)

這兩個明顯還不是方程的根吖,根據公式(-b±sqrt(b*b-4*a*c))/2*a應該是term1+term2和term1-term2。

還有就是我感覺你上面判斷的

if(a==0)

if(b==0)

我猜測你是想讓a b都不為0吧?,那麼寫成if(a==0&&b==0)好點吧,但是根據你下面的printf("=%f\n",-c/b),可以看出明顯b不能為0,但是a卻沒有要求,而要讓a*x^2+b*x+c=0有解的話只要a,b不同時為0就行了,再根據你的-c/b,得知b不能為0,那麼判斷的時候我感覺只需要判斷if(b==0)就可以了,a可以取任意值。樓主可以試著修改一下,還有什麼問題我們再一起討論~~!

2樓:匿名使用者

結果怎麼個不一樣法了?

順便說哈

你的term1和term2本來就不是方程的解啊解應該是(-b+-sqrt(disc))/2a大概就是-term1+term2和-term1-term2

怎樣用matlab編寫求解方程a*x^2+b*x+c=0 的根的函式

3樓:雪狐晨光

若a=2,b=3,c=1,程式如下

p=[2 3 1];

x=roots(p)

matlab 求代數方程組 a*x^2+b*x+c=0 x+y=0 關於x,y的解,並分別繪製x和y關於b和c的影象(a視作常數)

4樓:宇逸

1. 求代數方程組的解:

>> [x,y]=solve('a*x^2+b*x+c=0','x+y=0','x,y')

x =1/2/a*(-b+(b^2-4*a*c)^(1/2))

1/2/a*(-b-(b^2-4*a*c)^(1/2))

y =-1/2/a*(-b+(b^2-4*a*c)^(1/2))

-1/2/a*(-b-(b^2-4*a*c)^(1/2))

>>2. 從上面的解可以看出,x,y都有兩組解且x,y互為相反數。

假設a=1,這裡有兩種方法繪製x,y關於b,c的影象:

(1)隱函式繪圖

x1=subs(x(1),'a',1);

x2=subs(x(2),'a',1);

y1=subs(y(1),'a',1);

y2=subs(y(2),'a',1);

figure

po=get(gcf,'position');

set(gcf,'position',[po(1)-0.5*po(3) po(2) 2*po(3) po(4)]);

subplot(121)

ezsurf(x1,[-10 10])

hold on

ezsurf(x2,[-10 10])

subplot(122)

ezsurf(y1,[-10 10])

hold on

ezsurf(y2,[-10 10])

(2)根據方程式直接繪圖

>> a=1;

>> [b,c]=meshgrid(-10:0.5:10);

>> delta=b.^2-4*a*c;

>> delta(delta<0)=nan;

>> x1=0.5/a*(-b+sqrt(delta));

>> x2=0.5/a*(-b-sqrt(delta));

>> y1=-x1;

>> y2=-x2;

>> figure

>> po=get(gcf,'position');

>> set(gcf,'position',[po(1)-0.5*po(3) po(2) 2*po(3) po(4)]);

>> subplot(121)

>> surf(b,c,x1)

>> hold on

>> surf(b,c,x2)

>> xlabel('b');ylabel('c');zlabel('x')

>> subplot(122)

>> surf(b,c,y1)

>> hold on

>> surf(b,c,y2)

>> xlabel('b');ylabel('c');zlabel('y')

matlab用對分法求a*x^2+b*x+c,其中a,b,c自行輸入

5樓:匿名使用者

我這兩天剛好遇到這個問題,solve求解得過程是把所給等式除去未知數其他的變數當成已知專數,直接屬這麼寫解不出來。

可以這麼試試:

(隨便舉個例子3*x^2+2*x-33=0)syms x

a= 3;

b=2;

c=-33;

equ=a*x^2+b*x+c;

x=solve(equ)

結果:x =

-11/3

3希望對你有幫助!

求解一元二次方程a*x*x+b*x+c=0 用c語言寫

6樓:匿名使用者

#include

#include

int main()

7樓:我一定會回來嘚

#include "stdio.h"

#include "math.h"

void main()

if (d>0)}

8樓:青原落楓

廢話不bai多說du

來了zhi,我dao來專了。屬

#include

#include

int structure(int a,int b,int c)main()

c語言 求ax 2 bx c 0方程的根。a,b,c由鍵盤輸

休珈藍悅 includ main if a 0 if k 0 if k 0 getch 大體上對 你在遍譯一下 我這機器上沒tc 已經編好了,絕對可以執行的 那些運算的方法就是和數學上的計算方法一樣,你應該看得懂吧 include include main else k b b 4 a c if k...

程式設計求方程ax2 bx c 0的根,分別求當b2 4ac大於

include include void f1 double a 3 double p,double q void f2 double a 3 double p,double q void f3 double a 3 double p,double q void main else if d 0 e...

已知關於x的不等式ax 2 bx c0的解集為

由題知ax 2 bx c 0可化為 a x 2 x 1 2 0,由解集得拋物線開口向下即 a 0故有 x 2 x 1 2 0 比較題中兩式的左端和十字相乘法則 ax 2 bx c 0可化為 a x 2 x 1 2 0 又a 0 故有 x 2 x 1 2 0所以解集為 1 2 0.5 求ax方 bx ...