【求助】問個MATLAB的問題



贊助商連結


犽羽獠
2003-11-08, 11:14 PM
請問各位..有一個數學式子如下
x1=-475.6a-1.2
x2=-312a+1
f(x)=100(x2-x1^2)^2+(1-x1)^2
我要將x1=-475.6a-1.2及x2=-312a+1代入f(x)中..使他成為一個f(a)的函數
在MATLAB中要如何寫這個程式..我不知道MATLAB中對於這種多項式要怎麼處理.
希望懂MATLAB的高手能教我..謝謝

贊助商連結


cit0316
2003-11-09, 12:07 AM
MATLAB的書或是軟體help一定能教你,這題難嗎?

犽羽獠
2003-11-09, 12:57 AM
最主要的原因還是在於那個未知數a..我不知道要如何將x1及x2代到f(x)中.使其變成一個f(a)的函數.而這個函數.我其他的地方還會用到.找了一些書.也找不到類似的..

cit0316
2003-11-10, 01:21 AM
MATLAB離我已經3年沒碰了...

x1=[-475.6,-1.2];
x2=[=-312,1];
.............這樣可以嗎?
希望前輩能指導一下,有空再來翻翻,手邊也沒軟體test...

lenbo
2003-11-10, 08:46 PM
最初由 犽羽獠 發表
請問各位..有一個數學式子如下
x1=-475.6a-1.2
x2=-312a+1
f(x)=100(x2-x1^2)^2+(1-x1)^2
我要將x1=-475.6a-1.2及x2=-312a+1代入f(x)中..使他成為一個f(a)的函數
在MATLAB中要如何寫這個程式..我不知道MATLAB中對於這種多項式要怎麼處理.
希望懂MATLAB的高手能教我..謝謝

x1=-475.6a-1.2
x2=-312a+1
變數的係數要用*的,你醬子直接寫-475.6a只有人看得懂
f(x)=100(x2-x1^2)^2+(1-x1)^2
你已經把變數x1和x2用a變數的方程式代了
你打f(x)電腦會不曉得你的變數是什麼
而且好像沒有f(變數)這種用法也……

x1和x2要用'-475.6*a-1.2'的方式傳入f變數中
然後你直接打f按return就會算出a的答案了吧!
至於詳細的用法及語法
你還是買本MATLAB的書來看看先吧
對你日後一定有幫助地……
推薦"林傳生"寫的MATLAB書

之前寫*.m file蠻有心得的說
不過有段時間沒碰MATLAB了
有錯請指正:D

犽羽獠
2003-11-10, 11:40 PM
感謝大家的指教..這個問題我已經解決了..我想大家誤會我的意思了..我並不是要"求值"..而是要求"多項式".各位說的方法都是針對求值的部分.別忘了有一個未知數"a".這些方法我也早試過了.但MATLAB在RUN時會告訴你.它不知道"a"是啥.而在MATLAB中有一個功能叫做"符號運算".就是針對這種狀況而生.我舉一個較簡單的例子好了.函數f(x)=8x1^2+4x1x2+5x2^2,其中x1=10-200a
,x2=10-140a..將x1及x2代入f(x)中.使其成為f(a)=530000a^2-59600a+1700..
MATLAB程式如下:
syms x1 x2 a
d=8*x1^2+4*x1*x2+5*x2^2;
e1=10-200*a;
e2=10-140*a;
sol=subs(d,{x1,x2},{e1,e2});
sol=expand(sol)
執行結果
sol =

1700-59600*a+530000*a^2

speed101
2003-11-11, 03:52 PM
差個提外話

原來站上會這軟體的人還真不少呀~ 下學期我就要修這個了,若到時有遇到問題,還希望大家慷慨解囊
謝謝囉~^^