matlab二元一次方程求解_2-函数的求解计算
一、本期介紹函數的求解有兩種
(1)已知x求y
(2)已知y求x
1.1已知x求y
回想我們上一期,講了多項式求解的方法,也是已知x求y。想一下,多項式不也是函數的一種嗎,所以本期求解的方法同樣適用于多項式,只不過比多項式稍微麻煩了一點點點。同學在學完本期內容之后可以對比下上一期。
例1、求下列函數x=1,2,3,4,5對應y的值
對函數求解有兩種方式:
1.1.1創建函數文件
這種方法的原理是:
(1)構造一個函數文件,表示我們定義了一個函數(比如fun(x)),以后我們就可以隨便使用這個函數了(為什么不直接在matlab命令行構建?是因為每解一個x我們就要輸入一次y的表達式,不太方便。)。
(2)然后我們在命令行輸入x的值(可以是單個數,也可以是多個值),再調用該函數,就可以得到y的值了
下面具體求解過程:
首先創建一個函數文件,操作如下:
在該函數文件中輸入如下:
function y = fun(x) %定義該函數的名稱為fun(),在結果中顯示返回值yy = 4*x.^3+3*sin(x)+2; %輸入y的表達式,注意要用.^,因為需要輸入多個xend %結束語句點擊上面菜單欄的保存即可,然后可以看到左側出現該函數文件名稱。這時候我們可以直接調用
我們關閉函數文件界面,返回命令行窗口,輸入:
x = [1,2,3,4,5]; fun(x)結果如下:
ans =8.5244 36.7279 110.4234 255.7296 499.12321.1.2直接在命令行創建函數的方法(函數句柄)
這種方法和創建函數文件的方法其實是一樣的,因為直接在命令行調用,所以比較方便。但是當編寫較為復雜的函數文件時,再用這種方法就不夠直觀,而且容易出錯。所以這種方法適用于簡單、臨時的函數。
具體操作如下:
fun = @(x) 4*x.^3+3*sin(x)+2; x = [1,2,3,4,5]; y = fun(x)結果如下:
y =8.5244 36.7279 110.4234 255.7296 499.1232可以看到,與構建函數文件得到的結果是一樣的。
1.2已知y求x
要用到的函數:solve() ,用法如下
solve(y, x):求解y=0時,自變量x的值。
既然我們要求解根,那么我們首先需要讓x占一個空間,然后求解。
這里我們需要用到syms或sym(' ')來定義符號。操作如下:
syms x %將字符'x'定義為一個未知量 sym('x') %將字符'x'定義為一個未知量,輸入麻煩,不常用好的,我們來實際應用一下
1.2.1 求解一元方程
例2、求解
syms x %定義自變量x,這里不定義y是因為在后面的求解過程中認為其是0,沒有占用空間,定不定義都一樣 y = x*sin(x)-x; %定義y, solve(y,x) %求解y=0時,自變量x的值.也可以寫成solve('x*sin(x)-x',x)結果如下:
ans =0pi/21.2.2 求解多元方程
solve(eq1, eq2, ..., x, y, ...)前面寫方程,后面寫未知數
例3、 求解二元一次方程
這里是兩個未知數了,那么我們需要定義兩個未知數,將等式右邊的值移到等式左邊
syms x y %空格隔開 eq1 = x-2*y-5; eq2 = x+y-6; A = solve(eq1,eq2,x,y) %前面寫等式,后面寫未知數。這里等式的順序和未知數不影響結果。%這里需要注意將solve結果賦值給A.因為solve函數只負責計算,并沒有改變x,y是符號的性質%matlab這樣做的原因是為了區別誰是x誰是y結果如下:
A = 包含以下字段的 struct:y: [1×1 sym]x: [1×1 sym]那么我們如何去看x,y的值呢?請看下面
>> A.xans =17/3>> A.yans =1/3好的,通過上面兩道題的練習,我們應該知道含有多個未知數的解法了,而且也不限于多項式方程,更復雜的方程也可以求解。
二、函數的符號運算
求解未知數以字符表示的方程
與前面內容不同的是:變量是某些符號的表示,而不是具體的數值
例4、求方程的根
syms x a b solve(a*x^2-b,x) %后面如果將自變量定義的是b,那么求解的就是b用x,a表示。如果沒有定義,默認是x結果如下:
ans =b^(1/2)/a^(1/2)-b^(1/2)/a^(1/2)例5、當x=1,2,3,4,5時,將y用a,b表示
首先創建函數文件
function y = fun(x) syms a b y = a*x.^2-b; end在命令行輸入x,求y
x = [1,2,3,4,5]; fun(x)結果如下:
ans =[ a - b, 4*a - b, 9*a - b, 16*a - b, 25*a - b]好的,通過這兩道題的練習我們應該對定義符號變量有了充分的認識了。那么我們以后求解帶有符號的方程都可以用這種方式。
總結
本節我們學習了函數的求解,包括構建函數及函數句柄@,并且還學習了含有符號變量的函數的運算。希望各位好好熟悉一下本節,非常重要,是以后復雜運算的基礎。
操千曲而后曉聲,觀千劍而后識器
總結
以上是生活随笔為你收集整理的matlab二元一次方程求解_2-函数的求解计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 告警系统邮件引擎
- 下一篇: matlab人脸追踪,求大神帮助我这个菜