How can I change the analogWrite() to use ultrasonic PMW instead of the audible one
Do a Search in the Playground, there are several writeups on changing the PWM speed.
Short answer -Yes
Your best bet is to use the PWM off Timer2. I you remove the prescaler you should get a frequency of 62.5 kHz and 16mHz clock (like most Arduinos).
You will then have two ultrasonic PWM pins.
Have a look at this: Arduino Playground - TimerPWMCheatsheet. The maximum PWM frequency and Arduino can generate is 62kHz (pins 5 and 6 using Timer 0). The highest you can generate without side effects on millis() and delay() is 31.25kHz (pins 9, 10, 11, 3). The maximum frequency audible to humans is about 20kHz. Why do you need ultrasonic sound? If you are trying to measure distance, or detect objects, etc. you are better off using an [expensive] ultrasonic range finder.
16mHz
Very, very subsonic
my main reason is because of the noise of the regular PWM
Yes but what are you driving?
If it is a motor then you can't get too high because of the inductance blocking any high frequency current flow.